]> git.proxmox.com Git - mirror_libseccomp.git/commitdiff
arch: fix the multiplexed ipc() syscalls
authorPaul Moore <paul@paul-moore.com>
Wed, 20 Apr 2016 17:26:54 +0000 (13:26 -0400)
committerPaul Moore <paul@paul-moore.com>
Wed, 20 Apr 2016 17:26:54 +0000 (13:26 -0400)
Unfortunately we were only properly handling some of the multiplexed
ipc() syscalls, this patch correctly handles all of the ipc()
syscalls.

Signed-off-by: Paul Moore <paul@paul-moore.com>
src/arch-s390.c
src/arch-s390x.c
src/arch-x86.c

index fca5fee3e6c6d22d92e18ff379276a0c708d76bb..2e7967099d8f622f7307e47601664587d447ecfd 100644 (file)
@@ -184,7 +184,7 @@ int s390_syscall_rewrite(int *syscall)
 
        if (sys <= -100 && sys >= -120)
                *syscall = __s390_NR_socketcall;
-       else if (sys <= -200 && sys >= -211)
+       else if (sys <= -200 && sys >= -224)
                *syscall = __s390_NR_ipc;
        else if (sys < 0)
                return -EDOM;
@@ -296,7 +296,7 @@ int s390_rule_add(struct db_filter_col *col, struct db_filter *db, bool strict,
                                goto fail_transaction;
                }
                db_col_transaction_commit(col);
-       } else if (sys <= -200 && sys >= -211) {
+       } else if (sys <= -200 && sys >= -224) {
                /* multiplexed ipc syscalls */
                for (iter = 0; iter < ARG_COUNT_MAX; iter++) {
                        if ((rule->args[iter].valid != 0) && (strict))
index d14bdf05d340de451a40c81bd1d6a318b90e983e..4de1a1bf490beae50841886318c1045ddfad22de 100644 (file)
@@ -184,7 +184,7 @@ int s390x_syscall_rewrite(int *syscall)
 
        if (sys <= -100 && sys >= -120)
                *syscall = __s390x_NR_socketcall;
-       else if (sys <= -200 && sys >= -211)
+       else if (sys <= -200 && sys >= -224)
                *syscall = __s390x_NR_ipc;
        else if (sys < 0)
                return -EDOM;
@@ -296,7 +296,7 @@ int s390x_rule_add(struct db_filter_col *col, struct db_filter *db, bool strict,
                                goto fail_transaction;
                }
                db_col_transaction_commit(col);
-       } else if (sys <= -200 && sys >= -211) {
+       } else if (sys <= -200 && sys >= -224) {
                /* multiplexed ipc syscalls */
                for (iter = 0; iter < ARG_COUNT_MAX; iter++) {
                        if ((rule->args[iter].valid != 0) && (strict))
index 1bfe926b25b5d989d283a426dad426f24d2911a6..8542079d0e2ab0319d77c429a3af98b6d63aaf86 100644 (file)
@@ -200,7 +200,7 @@ int x86_syscall_rewrite(int *syscall)
 
        if (sys <= -100 && sys >= -120)
                *syscall = __x86_NR_socketcall;
-       else if (sys <= -200 && sys >= -211)
+       else if (sys <= -200 && sys >= -224)
                *syscall = __x86_NR_ipc;
        else if (sys < 0)
                return -EDOM;
@@ -312,7 +312,7 @@ int x86_rule_add(struct db_filter_col *col, struct db_filter *db, bool strict,
                                goto fail_transaction;
                }
                db_col_transaction_commit(col);
-       } else if (sys <= -200 && sys >= -211) {
+       } else if (sys <= -200 && sys >= -224) {
                /* multiplexed ipc syscalls */
                for (iter = 0; iter < ARG_COUNT_MAX; iter++) {
                        if ((rule->args[iter].valid != 0) && (strict))