diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2011-01-18 17:36:20 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2011-01-19 00:52:15 +0000 |
commit | 50a218d4ac83e6adf6f44785037dd25bd8037921 (patch) | |
tree | 86aea96cbd9fa4c9a2bd571c8b98e98b9ab9c390 | |
parent | 62d0428cf599ba0a6f2f73c83e174fada31ff7e7 (diff) | |
download | strace-50a218d4ac83e6adf6f44785037dd25bd8037921.tar.gz |
Fix decoding of get[ug]id, gete[ug]id and setfs[ug]id return values
* defs.h (SYSCALL_NEVER_FAILS): New syscall flag.
* linux/dummy.h: Change redirection for sys_get[ug]id, sys_gete[ug]id
and setfs[ug]id.
* linux/*/syscallent.h: Set SYSCALL_NEVER_FAILS flag for get[ug]id,
gete[ug]id and setfs[ug]id syscalls.
* process.c [LINUX] (sys_getuid, sys_setfsuid): New functions.
* syscall.c (NF): New shorthand macro for use in syscallent.h files.
(get_error): Check SYSCALL_NEVER_FAILS flag.
Reported by Марк Коренберг <socketpair@gmail.com>.
-rw-r--r-- | defs.h | 1 | ||||
-rw-r--r-- | linux/alpha/syscallent.h | 8 | ||||
-rw-r--r-- | linux/arm/syscallent.h | 24 | ||||
-rw-r--r-- | linux/avr32/syscallent.h | 12 | ||||
-rw-r--r-- | linux/bfin/syscallent.h | 24 | ||||
-rw-r--r-- | linux/dummy.h | 10 | ||||
-rw-r--r-- | linux/hppa/syscallent.h | 12 | ||||
-rw-r--r-- | linux/i386/syscallent.h | 24 | ||||
-rw-r--r-- | linux/ia64/syscallent.h | 12 | ||||
-rw-r--r-- | linux/m68k/syscallent.h | 24 | ||||
-rw-r--r-- | linux/microblaze/syscallent.h | 24 | ||||
-rw-r--r-- | linux/mips/syscallent.h | 36 | ||||
-rw-r--r-- | linux/powerpc/syscallent.h | 12 | ||||
-rw-r--r-- | linux/s390/syscallent.h | 22 | ||||
-rw-r--r-- | linux/s390x/syscallent.h | 12 | ||||
-rw-r--r-- | linux/sh/syscallent.h | 12 | ||||
-rw-r--r-- | linux/sh64/syscallent.h | 14 | ||||
-rw-r--r-- | linux/sparc/syscallent.h | 24 | ||||
-rw-r--r-- | linux/tile/syscallent.h | 12 | ||||
-rw-r--r-- | linux/x86_64/syscallent.h | 12 | ||||
-rw-r--r-- | process.c | 16 | ||||
-rw-r--r-- | syscall.c | 47 |
22 files changed, 208 insertions, 186 deletions
@@ -488,6 +488,7 @@ extern const struct xlat open_access_modes[]; #define TRACE_PROCESS 010 /* Trace process-related syscalls. */ #define TRACE_SIGNAL 020 /* Trace signal-related syscalls. */ #define TRACE_DESC 040 /* Trace file descriptor-related syscalls. */ +#define SYSCALL_NEVER_FAILS 100 /* Syscall is always successful. */ typedef enum { CFLAG_NONE = 0, diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index 5396fcbb4..c74fbeeee 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -52,7 +52,7 @@ { 4, 0, printargs, "osf_mount" }, /* 21 */ { 2, 0, sys_umount2, "umount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getxuid" }, /* 24 */ + { 0, NF, sys_getuid, "getxuid" }, /* 24 */ { 5, 0, printargs, "exec_with_loader" }, /* 25, not implemented */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 5, 0, printargs, "osf_nrecvmsg" }, /* 27, not implemented */ @@ -75,7 +75,7 @@ { 5, 0, printargs, "osf_profil" }, /* 44, not implemented */ { 3, TD|TF, sys_open, "open" }, /* 45 */ { 5, 0, printargs, "osf_old_sigaction" }, /* 46, not implemented */ - { 1, 0, sys_getgid, "getxgid" }, /* 47 */ + { 1, NF, sys_getgid, "getxgid" }, /* 47 */ { 3, TS, printargs, "osf_sigprocmask" }, /* 48 */ { 5, 0, printargs, "osf_getlogin" }, /* 49, not implemented */ { 5, 0, printargs, "osf_setlogin" }, /* 50, not implemented */ @@ -353,8 +353,8 @@ { 1, 0, sys_swapon, "swapon" }, /* 322 */ { 1, 0, sys_times, "times" }, /* 323 */ { 1, 0, sys_personality, "personality" }, /* 324 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 325 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 326 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 325 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 326 */ { 2, 0, sys_ustat, "ustat" }, /* 327 */ { 2, TF, sys_statfs, "statfs" }, /* 328 */ { 2, TD, sys_fstatfs, "fstatfs" }, /* 329 */ diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index 0b9692db4..b942de7bc 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, 0, sys_llseek, "_llseek" }, /* 140 */ { 3, 0, sys_getdents, "getdents" }, /* 141 */ { 5, 0, sys_select, "select" }, /* 142 */ @@ -228,11 +228,11 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "lchown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ - { 0, 0, sys_getgid, "getgid32" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */ - { 0, 0, sys_geteuid, "getegid32" }, /* 202 */ + { 0, NF, sys_getgid, "getgid32" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 201 */ + { 0, NF, sys_geteuid, "getegid32" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */ { 2, 0, sys_setregid, "setregid32" }, /* 204 */ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ @@ -245,8 +245,8 @@ { 3, TF, sys_chown, "chown32" }, /* 212 */ { 1, 0, sys_setuid, "setuid32" }, /* 213 */ { 1, 0, sys_setgid, "setgid32" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */ { 3, 0, sys_getdents64, "getdents64" }, /* 217 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 218 */ { 3, 0, printargs, "mincore" }, /* 219 */ diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h index 57c133691..0c223911c 100644 --- a/linux/avr32/syscallent.h +++ b/linux/avr32/syscallent.h @@ -51,7 +51,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 2, TF, sys_umount, "umount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -74,13 +74,13 @@ { 5, TP, sys_clone, "clone" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 2, TF, sys_getcwd, "getcwd" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 52 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 53 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 52 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 53 */ { 3, TD, sys_ioctl, "ioctl" }, /* 54 */ { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ { 2, 0, sys_setpgid, "setpgid" }, /* 56 */ diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h index 30c5b54cd..dcf5b5614 100644 --- a/linux/bfin/syscallent.h +++ b/linux/bfin/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, printargs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TD, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ @@ -227,10 +227,10 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TD, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "chown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ - { 0, 0, sys_getgid, "getgid32" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */ - { 0, 0, sys_geteuid, "getegid32" }, /* 202 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getgid, "getgid32" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 201 */ + { 0, NF, sys_geteuid, "getegid32" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */ { 2, 0, sys_setregid, "setregid32" }, /* 204 */ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ @@ -243,8 +243,8 @@ { 3, TF, sys_chown, "lchown32" }, /* 212 */ { 1, 0, sys_setuid, "setuid32" }, /* 213 */ { 1, 0, sys_setgid, "setgid32" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 3, 0, sys_mincore, "mincore" }, /* 218 */ { 3, 0, sys_madvise, "madvise" }, /* 219 */ diff --git a/linux/dummy.h b/linux/dummy.h index ce81649c4..3b8bff0d4 100644 --- a/linux/dummy.h +++ b/linux/dummy.h @@ -58,8 +58,10 @@ #define sys_swapoff sys_chdir #define sys_delete_module sys_open #define sys_fchdir sys_close -#define sys_setfsuid sys_setuid -#define sys_setfsgid sys_setgid +#define sys_getgid sys_getuid +#define sys_getegid sys_getuid +#define sys_geteuid sys_getuid +#define sys_setfsgid sys_setfsuid #define sys_acct sys_chdir #define sys_fdatasync sys_close #define sys_mlock sys_munmap @@ -70,12 +72,8 @@ /* printargs does the right thing */ #define sys_setup printargs #define sys_getpid printargs -#define sys_getuid printargs #define sys_pause printargs #define sys_sync printargs -#define sys_getgid printargs -#define sys_geteuid printargs -#define sys_getegid printargs #define sys_getppid printargs #define sys_getpgrp printargs #define sys_setsid printargs diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index 95e8a34c0..0a2a992f2 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -29,7 +29,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 3, TN, sys_bind, "bind" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -52,10 +52,10 @@ { 3, TN, sys_getsockname, "getsockname" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 2, 0, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, 0, sys_umount2, "umount2" }, /* 52 */ { 3, TN, sys_getpeername, "lock" }, /* 53 */ @@ -143,8 +143,8 @@ { 5, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TF, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "_newselect" }, /* 142 */ diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h index 93ca3cf2a..003efc304 100644 --- a/linux/i386/syscallent.h +++ b/linux/i386/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs", SYS_sysfs }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TD, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ @@ -228,11 +228,11 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TD, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "lchown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ - { 0, 0, sys_getgid, "getgid32" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */ - { 0, 0, sys_getegid, "getegid32" }, /* 202 */ + { 0, NF, sys_getgid, "getgid32" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 201 */ + { 0, NF, sys_getegid, "getegid32" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */ { 2, 0, sys_setregid, "setregid32" }, /* 204 */ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ @@ -245,8 +245,8 @@ { 3, TF, sys_chown, "chown32" }, /* 212 */ { 1, 0, sys_setuid, "setuid32" }, /* 213 */ { 1, 0, sys_setgid, "setgid32" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 3, 0, sys_mincore, "mincore" }, /* 218 */ { 3, 0, sys_madvise, "madvise" }, /* 219 */ diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index e2bd1e48a..6e706983b 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -850,8 +850,8 @@ { 5, TF, sys_mount, "mount" }, /* 1043 */ { 1, 0, sys_umount2, "umount" }, /* 1044 */ { 1, 0, sys_setuid, "setuid" }, /* 1045 */ - { 0, 0, sys_getuid, "getuid" }, /* 1046 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 1047 */ + { 0, NF, sys_getuid, "getuid" }, /* 1046 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 1047 */ { 4, 0, sys_ptrace, "ptrace" }, /* 1048 */ { 2, TF, sys_access, "access" }, /* 1049 */ { 0, 0, sys_sync, "sync" }, /* 1050 */ @@ -866,8 +866,8 @@ { 1, 0, sys_times, "times" }, /* 1059 */ { 1, 0, sys_brk, "brk" }, /* 1060 */ { 1, 0, sys_setgid, "setgid" }, /* 1061 */ - { 0, 0, sys_getgid, "getgid" }, /* 1062 */ - { 0, 0, sys_getegid, "getegid" }, /* 1063 */ + { 0, NF, sys_getgid, "getgid" }, /* 1062 */ + { 0, NF, sys_getegid, "getegid" }, /* 1063 */ { 1, TF, sys_acct, "acct" }, /* 1064 */ { 3, TD, sys_ioctl, "ioctl" }, /* 1065 */ { 3, TD, sys_fcntl, "fcntl" }, /* 1066 */ @@ -946,8 +946,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 1139 */ { 1, 0, sys_personality, "personality" }, /* 1140 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 1141 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 1142 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 1143 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 1142 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 1143 */ { 3, TD, sys_getdents, "getdents" }, /* 1144 */ { 2, TD, sys_flock, "flock" }, /* 1145 */ { 5, TD, sys_readv, "readv" }, /* 1146 */ diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index 0f9376081..ac2481a76 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs", SYS_sysfs }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, 0, sys_llseek, "_llseek" }, /* 140 */ { 3, 0, sys_getdents, "getdents" }, /* 141 */ { 5, 0, sys_select, "select" }, /* 142 */ @@ -227,10 +227,10 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "chown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ - { 0, 0, sys_getgid, "getgid32" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */ - { 0, 0, sys_geteuid, "getegid32" }, /* 202 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getgid, "getgid32" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 201 */ + { 0, NF, sys_geteuid, "getegid32" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */ { 2, 0, sys_setregid, "setregid32" }, /* 204 */ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ @@ -243,8 +243,8 @@ { 3, TF, sys_chown, "lchown32" }, /* 212 */ { 1, 0, sys_setuid, "setuid32" }, /* 213 */ { 1, 0, sys_setgid, "setgid32" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 5, 0, printargs, "SYS_218" }, /* 218 */ { 5, 0, printargs, "SYS_219" }, /* 219 */ diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h index 0240a445b..f967ae6a1 100644 --- a/linux/microblaze/syscallent.h +++ b/linux/microblaze/syscallent.h @@ -50,7 +50,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -73,10 +73,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -164,8 +164,8 @@ { 3, 0, sys_sysfs, "sysfs", SYS_sysfs }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, 0, sys_llseek, "_llseek" }, /* 140 */ { 3, 0, sys_getdents, "getdents" }, /* 141 */ { 5, 0, sys_select, "select" }, /* 142 */ @@ -225,10 +225,10 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "lchown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ - { 0, 0, sys_getgid, "getgid32" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */ - { 0, 0, sys_geteuid, "getegid32" }, /* 202 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getgid, "getgid32" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 201 */ + { 0, NF, sys_geteuid, "getegid32" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */ { 2, 0, sys_setregid, "setregid32" }, /* 204 */ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ @@ -241,8 +241,8 @@ { 3, TF, sys_chown, "chown32" }, /* 212 */ { 1, 0, sys_setuid, "setuid32" }, /* 213 */ { 1, 0, sys_setgid, "setgid32" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 3, 0, sys_mincore, "mincore" }, /* 218 */ { 3, 0, sys_madvise, "madvise" }, /* 219 */ diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h index f2914bf21..e69092d0e 100644 --- a/linux/mips/syscallent.h +++ b/linux/mips/syscallent.h @@ -4026,7 +4026,7 @@ { 5, TF, sys_mount, "mount" }, /* 4021 */ { 1, TF, sys_umount, "oldumount" }, /* 4022 */ { 1, 0, sys_setuid, "setuid" }, /* 4023 */ - { 0, 0, sys_getuid, "getuid" }, /* 4024 */ + { 0, NF, sys_getuid, "getuid" }, /* 4024 */ { 1, 0, sys_stime, "stime" }, /* 4025 */ { 4, 0, sys_ptrace, "ptrace" }, /* 4026 */ { 1, 0, sys_alarm, "alarm" }, /* 4027 */ @@ -4049,10 +4049,10 @@ { 0, 0, sys_prof, "prof" }, /* 4044 */ { 1, 0, sys_brk, "brk" }, /* 4045 */ { 1, 0, sys_setgid, "setgid" }, /* 4046 */ - { 0, 0, sys_getgid, "getgid" }, /* 4047 */ + { 0, NF, sys_getgid, "getgid" }, /* 4047 */ { 1, TS, sys_signal, "signal" }, /* 4048 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 4049 */ - { 0, 0, sys_getegid, "getegid" }, /* 4050 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 4049 */ + { 0, NF, sys_getegid, "getegid" }, /* 4050 */ { 1, TF, sys_acct, "acct" }, /* 4051 */ { 2, TF, sys_umount2, "umount" }, /* 4052 */ { 0, 0, sys_lock, "lock" }, /* 4053 */ @@ -4140,8 +4140,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 4135 */ { 1, 0, sys_personality, "personality" }, /* 4136 */ { 0, 0, sys_afs_syscall, "afs_syscall" }, /* 4137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 4138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 4139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 4138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 4139 */ { 5, TF, sys_llseek, "_llseek" }, /* 4140 */ { 3, TD, sys_getdents, "getdents" }, /* 4141 */ { 5, TD, sys_select, "_newselect" }, /* 4142 */ @@ -5448,13 +5448,13 @@ { 1, 0, sys_sysinfo, "sysinfo" }, /* 5097 */ { 1, 0, sys_times, "times" }, /* 5098 */ { 4, 0, sys_ptrace, "ptrace" }, /* 5099 */ - { 0, 0, sys_getuid, "getuid" }, /* 5100 */ + { 0, NF, sys_getuid, "getuid" }, /* 5100 */ { 3, 0, sys_syslog, "syslog" }, /* 5101 */ - { 0, 0, sys_getgid, "getgid" }, /* 5102 */ + { 0, NF, sys_getgid, "getgid" }, /* 5102 */ { 1, 0, sys_setuid, "setuid" }, /* 5103 */ { 1, 0, sys_setgid, "setgid" }, /* 5104 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 5105 */ - { 0, 0, sys_getegid, "getegid" }, /* 5106 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 5105 */ + { 0, NF, sys_getegid, "getegid" }, /* 5106 */ { 2, 0, sys_setpgid, "setpgid" }, /* 5107 */ { 0, 0, sys_getppid, "getppid" }, /* 5108 */ { 0, 0, sys_getpgrp, "getpgrp" }, /* 5109 */ @@ -5468,8 +5468,8 @@ { 3, 0, sys_setresgid, "setresgid" }, /* 5117 */ { 3, 0, sys_getresgid, "getresgid" }, /* 5118 */ { 0, 0, sys_getpgid, "getpgid" }, /* 5119 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 5120 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 5121 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 5120 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 5121 */ { 1, 0, sys_getsid, "getsid" }, /* 5122 */ { 2, 0, sys_capget, "capget" }, /* 5123 */ { 2, 0, sys_capset, "capset" }, /* 5124 */ @@ -6754,13 +6754,13 @@ { 1, 0, sys_sysinfo, "sysinfo" }, /* 6097 */ { 1, 0, sys_times, "times" }, /* 6098 */ { 4, 0, sys_ptrace, "ptrace" }, /* 6099 */ - { 0, 0, sys_getuid, "getuid" }, /* 6100 */ + { 0, NF, sys_getuid, "getuid" }, /* 6100 */ { 3, 0, sys_syslog, "syslog" }, /* 6101 */ - { 0, 0, sys_getgid, "getgid" }, /* 6102 */ + { 0, NF, sys_getgid, "getgid" }, /* 6102 */ { 1, 0, sys_setuid, "setuid" }, /* 6103 */ { 1, 0, sys_setgid, "setgid" }, /* 6104 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 6105 */ - { 0, 0, sys_getegid, "getegid" }, /* 6106 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 6105 */ + { 0, NF, sys_getegid, "getegid" }, /* 6106 */ { 2, 0, sys_setpgid, "setpgid" }, /* 6107 */ { 0, 0, sys_getppid, "getppid" }, /* 6108 */ { 0, 0, sys_getpgrp, "getpgrp" }, /* 6109 */ @@ -6774,8 +6774,8 @@ { 3, 0, sys_setresgid, "setresgid" }, /* 6117 */ { 3, 0, sys_getresgid, "getresgid" }, /* 6118 */ { 0, 0, sys_getpgid, "getpgid" }, /* 6119 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 6120 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 6121 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 6120 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 6121 */ { 1, 0, sys_getsid, "getsid" }, /* 6122 */ { 2, 0, sys_capget, "capget" }, /* 6123 */ { 2, 0, sys_capset, "capset" }, /* 6124 */ diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index db1641db8..c97479c56 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TF, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 0fce32bba..035ed71d6 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -77,8 +77,8 @@ { -1, 0, printargs, "SYS_46" }, /* 46 */ { -1, 0, printargs, "SYS_47" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { -1, 0, printargs, "SYS_53" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TD, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ @@ -227,10 +227,10 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TD, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "lchown" }, /* 198 */ - { 0, 0, sys_getuid, "getuid" }, /* 199 */ - { 0, 0, sys_getgid, "getgid" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 201 */ - { 0, 0, sys_getegid, "getegid" }, /* 202 */ + { 0, NF, sys_getuid, "getuid" }, /* 199 */ + { 0, NF, sys_getgid, "getgid" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 201 */ + { 0, NF, sys_getegid, "getegid" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid" }, /* 203 */ { 2, 0, sys_setregid, "setregid" }, /* 204 */ { 2, 0, sys_getgroups, "getgroups" }, /* 205 */ @@ -243,8 +243,8 @@ { 3, TF, sys_chown, "chown" }, /* 212 */ { 1, 0, sys_setuid, "setuid" }, /* 213 */ { 1, 0, sys_setgid, "setgid" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 3, 0, sys_mincore, "mincore" }, /* 218 */ { 3, 0, sys_madvise, "madvise" }, /* 219 */ diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index 85694f33a..b98dfef13 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -226,10 +226,10 @@ { -1, 0, printargs, "SYS_196" }, /* 196 */ { -1, 0, printargs, "SYS_197" }, /* 197 */ { 3, TF, sys_chown, "lchown" }, /* 198 */ - { 0, 0, sys_getuid, "getuid" }, /* 199 */ - { 0, 0, sys_getgid, "getgid" }, /* 200 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 201 */ - { 0, 0, sys_getegid, "getegid" }, /* 202 */ + { 0, NF, sys_getuid, "getuid" }, /* 199 */ + { 0, NF, sys_getgid, "getgid" }, /* 200 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 201 */ + { 0, NF, sys_getegid, "getegid" }, /* 202 */ { 2, 0, sys_setreuid, "setreuid" }, /* 203 */ { 2, 0, sys_setregid, "setregid" }, /* 204 */ { 2, 0, sys_getgroups, "getgroups" }, /* 205 */ @@ -242,8 +242,8 @@ { 3, TF, sys_chown, "chown" }, /* 212 */ { 1, 0, sys_setuid, "setuid" }, /* 213 */ { 1, 0, sys_setgid, "setgid" }, /* 214 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 215 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 216 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 215 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 216 */ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ { 3, 0, sys_mincore, "mincore" }, /* 218 */ { 3, 0, sys_madvise, "madvise" }, /* 219 */ diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h index 754740411..2ff077367 100644 --- a/linux/sh/syscallent.h +++ b/linux/sh/syscallent.h @@ -54,7 +54,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -77,10 +77,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -168,8 +168,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TD, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h index fcfd0fa25..173abadc9 100644 --- a/linux/sh64/syscallent.h +++ b/linux/sh64/syscallent.h @@ -52,7 +52,7 @@ { 5, TF, sys_mount, "mount" }, /* 21 */ { 1, TF, sys_umount, "oldumount" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_stime, "stime" }, /* 25 */ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -75,10 +75,10 @@ { 0, 0, sys_prof, "prof" }, /* 44 */ { 1, 0, sys_brk, "brk" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, TF, sys_umount2, "umount" }, /* 52 */ { 0, 0, sys_lock, "lock" }, /* 53 */ @@ -166,8 +166,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ { 1, 0, sys_personality, "personality" }, /* 136 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */ { 5, TD, sys_llseek, "_llseek" }, /* 140 */ { 3, TD, sys_getdents, "getdents" }, /* 141 */ { 5, TD, sys_select, "select" }, /* 142 */ @@ -227,7 +227,7 @@ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ { 2, TD, sys_fstat64, "fstat64" }, /* 197 */ { 3, TF, sys_chown, "lchown32" }, /* 198 */ - { 0, 0, sys_getuid, "getuid32" }, /* 199 */ + { 0, NF, sys_getuid, "getuid32" }, /* 199 */ { 0, 0, printargs, "getgid32" }, /* 200 */ { 0, 0, printargs, "geteuid32" }, /* 201 */ { 0, 0, printargs, "getegid32" }, /* 202 */ diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 45a4c70e6..1ff870bcc 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -22,7 +22,7 @@ { 2, 0, sys_capget, "capget" }, /* 21 */ { 2, 0, sys_capset, "capset" }, /* 22 */ { 1, 0, sys_setuid, "setuid" }, /* 23 */ - { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 0, NF, sys_getuid, "getuid" }, /* 24 */ { 1, 0, sys_time, "time" }, /* 25 */ { 5, 0, sys_ptrace, "ptrace" }, /* 26 */ { 1, 0, sys_alarm, "alarm" }, /* 27 */ @@ -42,16 +42,16 @@ { 2, TD, sys_dup, "dup" }, /* 41 */ { 0, TD, sys_pipe, "pipe" }, /* 42 */ { 1, 0, sys_times, "times" }, /* 43 */ - { 0, 0, sys_getuid, "getuid32" }, /* 44 */ + { 0, NF, sys_getuid, "getuid32" }, /* 44 */ { 2, TF, sys_umount2, "umount" }, /* 45 */ { 1, 0, sys_setgid, "setgid" }, /* 46 */ - { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 0, NF, sys_getgid, "getgid" }, /* 47 */ { 3, TS, sys_signal, "signal" }, /* 48 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ - { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 49 */ + { 0, NF, sys_getegid, "getegid" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ { 2, 0, printargs, "memory_ordering" }, /* 52 */ - { 0, 0, sys_getgid, "getgid32" }, /* 53 */ + { 0, NF, sys_getgid, "getgid32" }, /* 53 */ { 3, TD, sys_ioctl, "ioctl" }, /* 54 */ { 3, 0, sys_reboot, "reboot" }, /* 55 */ { 6, 0, sys_mmap, "mmap2" }, /* 56 */ @@ -67,8 +67,8 @@ { 0, TP, sys_vfork, "vfork" }, /* 66 */ { 5, TD, sys_pread, "pread" }, /* 67 */ { 5, TD, sys_pwrite, "pwrite" }, /* 68 */ - { 0, 0, sys_geteuid, "geteuid32" }, /* 69 */ - { 0, 0, sys_getegid, "getegid32" }, /* 70 */ + { 0, NF, sys_geteuid, "geteuid32" }, /* 69 */ + { 0, NF, sys_getegid, "getegid32" }, /* 70 */ { 6, 0, sys_mmap, "mmap" }, /* 71 */ { 2, 0, sys_setreuid, "setreuid32" }, /* 72 */ { 2, 0, sys_munmap, "munmap" }, /* 73 */ @@ -89,10 +89,10 @@ { 2, 0, sys_sethostname,"sethostname" }, /* 88 */ { 1, 0, sys_setgid, "setgid32" }, /* 89 */ { 2, TD, sys_dup2, "dup2" }, /* 90 */ - { 1, 0, sys_setfsuid, "setfsuid32" }, /* 91 */ + { 1, NF, sys_setfsuid, "setfsuid32" }, /* 91 */ { 3, TD, sys_fcntl, "fcntl" }, /* 92 */ { 5, TD, sys_select, "select" }, /* 93 */ - { 1, 0, sys_setfsgid, "setfsgid32" }, /* 94 */ + { 1, NF, sys_setfsgid, "setfsgid32" }, /* 94 */ { 1, TD, sys_fsync, "fsync" }, /* 95 */ { 3, 0, sys_setpriority,"setpriority" }, /* 96 */ { 3, TN, sys_socket, "socket" }, /* 97 */ @@ -226,8 +226,8 @@ { 0, 0, sys_bdflush, "bdflush" }, /* 225 */ { 3, 0, sys_sysfs, "sysfs" }, /* 226 */ { 5, 0, sys_afs_syscall,"afs_syscall" }, /* 227 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 228 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 229 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 228 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 229 */ { 5, TD, sys_select, "select" }, /* 230 */ { 1, 0, sys_time, "time" }, /* 231 */ { 2, TF, sys_stat, "stat" }, /* 232 */ diff --git a/linux/tile/syscallent.h b/linux/tile/syscallent.h index 5948a09ee..c7f49d33a 100644 --- a/linux/tile/syscallent.h +++ b/linux/tile/syscallent.h @@ -21,7 +21,7 @@ { 5, TF, sys_mount, "mount" }, /* 20 */ { 2, TF, sys_umount2, "umount" }, /* 21 */ { 1, 0, sys_setuid, "setuid" }, /* 22 */ - { 0, 0, sys_getuid, "getuid" }, /* 23 */ + { 0, NF, sys_getuid, "getuid" }, /* 23 */ { 1, 0, sys_stime, "stime" }, /* 24 */ { 4, 0, sys_ptrace, "ptrace" }, /* 25 */ { 1, 0, sys_alarm, "alarm" }, /* 26 */ @@ -40,10 +40,10 @@ { 1, 0, sys_times, "times" }, /* 39 */ { 1, 0, sys_brk, "brk" }, /* 40 */ { 1, 0, sys_setgid, "setgid" }, /* 41 */ - { 0, 0, sys_getgid, "getgid" }, /* 42 */ + { 0, NF, sys_getgid, "getgid" }, /* 42 */ { 3, TS, sys_signal, "signal" }, /* 43 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 44 */ - { 0, 0, sys_getegid, "getegid" }, /* 45 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 44 */ + { 0, NF, sys_getegid, "getegid" }, /* 45 */ { 1, TF, sys_acct, "acct" }, /* 46 */ { 3, TD, sys_ioctl, "ioctl" }, /* 47 */ { 3, TD, sys_fcntl, "fcntl" }, /* 48 */ @@ -138,8 +138,8 @@ { 3, 0, sys_sysfs, "sysfs" }, /* 137 */ { 1, 0, sys_personality, "personality" }, /* 138 */ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 139 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 140 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 141 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 140 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 141 */ { 5, TD, sys_llseek, "_llseek" }, /* 142 */ { 3, TD, sys_getdents, "getdents" }, /* 143 */ { 2, TD, sys_flock, "flock" }, /* 144 */ diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index c9a72bfd1..c2391888b 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -100,13 +100,13 @@ { 1, 0, sys_sysinfo, "sysinfo" }, /* 99 */ { 1, 0, sys_times, "times" }, /* 100 */ { 4, 0, sys_ptrace, "ptrace" }, /* 101 */ - { 0, 0, sys_getuid, "getuid" }, /* 102 */ + { 0, NF, sys_getuid, "getuid" }, /* 102 */ { 3, 0, sys_syslog, "syslog" }, /* 103 */ - { 0, 0, sys_getgid, "getgid" }, /* 104 */ + { 0, NF, sys_getgid, "getgid" }, /* 104 */ { 1, 0, sys_setuid, "setuid" }, /* 105 */ { 1, 0, sys_setgid, "setgid" }, /* 106 */ - { 0, 0, sys_geteuid, "geteuid" }, /* 107 */ - { 0, 0, sys_getegid, "getegid" }, /* 108 */ + { 0, NF, sys_geteuid, "geteuid" }, /* 107 */ + { 0, NF, sys_getegid, "getegid" }, /* 108 */ { 2, 0, sys_setpgid, "setpgid" }, /* 109 */ { 0, 0, sys_getppid, "getppid" }, /* 110 */ { 0, 0, sys_getpgrp, "getpgrp" }, /* 111 */ @@ -120,8 +120,8 @@ { 3, 0, sys_setresgid, "setresgid" }, /* 119 */ { 3, 0, sys_getresgid, "getresgid" }, /* 120 */ { 1, 0, sys_getpgid, "getpgid" }, /* 121 */ - { 1, 0, sys_setfsuid, "setfsuid" }, /* 122 */ - { 1, 0, sys_setfsgid, "setfsgid" }, /* 123 */ + { 1, NF, sys_setfsuid, "setfsuid" }, /* 122 */ + { 1, NF, sys_setfsgid, "setfsgid" }, /* 123 */ { 1, 0, sys_getsid, "getsid" }, /* 124 */ { 2, 0, sys_capget, "capget" }, /* 125 */ { 2, 0, sys_capset, "capset" }, /* 126 */ @@ -1110,6 +1110,22 @@ struct tcb *tcp; #ifdef LINUX +int sys_getuid(struct tcb *tcp) +{ + if (exiting(tcp)) + tcp->u_rval = (uid_t) tcp->u_rval; + return RVAL_UDECIMAL; +} + +int sys_setfsuid(struct tcb *tcp) +{ + if (entering(tcp)) + tprintf("%u", (uid_t) tcp->u_arg[0]); + else + tcp->u_rval = (uid_t) tcp->u_rval; + return RVAL_UDECIMAL; +} + int sys_setuid(tcp) struct tcb *tcp; @@ -109,6 +109,7 @@ #define TN TRACE_NETWORK #define TP TRACE_PROCESS #define TS TRACE_SIGNAL +#define NF SYSCALL_NEVER_FAILS static const struct sysent sysent0[] = { #include "syscallent.h" @@ -143,6 +144,7 @@ int nsyscalls; #undef TN #undef TP #undef TS +#undef NF static const char *const errnoent0[] = { #include "errnoent.h" @@ -1553,8 +1555,13 @@ get_error(struct tcb *tcp) { int u_error = 0; #ifdef LINUX + int check_errno = 1; + if (tcp->scno >= 0 && tcp->scno < nsyscalls && + sysent[tcp->scno].sys_flags & SYSCALL_NEVER_FAILS) { + check_errno = 0; + } # if defined(S390) || defined(S390X) - if (is_negated_errno(gpr2)) { + if (check_errno && is_negated_errno(gpr2)) { tcp->u_rval = -1; u_error = -gpr2; } @@ -1563,7 +1570,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(I386) - if (is_negated_errno(eax)) { + if (check_errno && is_negated_errno(eax)) { tcp->u_rval = -1; u_error = -eax; } @@ -1572,7 +1579,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(X86_64) - if (is_negated_errno(rax)) { + if (check_errno && is_negated_errno(rax)) { tcp->u_rval = -1; u_error = -rax; } @@ -1585,7 +1592,7 @@ get_error(struct tcb *tcp) int err; err = (int)r8; - if (is_negated_errno(err)) { + if (check_errno && is_negated_errno(err)) { tcp->u_rval = -1; u_error = -err; } @@ -1594,7 +1601,7 @@ get_error(struct tcb *tcp) u_error = 0; } } else { - if (r10) { + if (check_errno && r10) { tcp->u_rval = -1; u_error = r8; } else { @@ -1603,7 +1610,7 @@ get_error(struct tcb *tcp) } } # elif defined(MIPS) - if (a3) { + if (check_errno && a3) { tcp->u_rval = -1; u_error = r2; } else { @@ -1611,7 +1618,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(POWERPC) - if (is_negated_errno(result)) { + if (check_errno && is_negated_errno(result)) { tcp->u_rval = -1; u_error = -result; } @@ -1620,7 +1627,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(M68K) - if (is_negated_errno(d0)) { + if (check_errno && is_negated_errno(d0)) { tcp->u_rval = -1; u_error = -d0; } @@ -1629,7 +1636,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(ARM) - if (is_negated_errno(regs.ARM_r0)) { + if (check_errno && is_negated_errno(regs.ARM_r0)) { tcp->u_rval = -1; u_error = -regs.ARM_r0; } @@ -1638,7 +1645,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(AVR32) - if (regs.r12 && (unsigned) -regs.r12 < nerrnos) { + if (check_errno && regs.r12 && (unsigned) -regs.r12 < nerrnos) { tcp->u_rval = -1; u_error = -regs.r12; } @@ -1647,7 +1654,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(BFIN) - if (is_negated_errno(r0)) { + if (check_errno && is_negated_errno(r0)) { tcp->u_rval = -1; u_error = -r0; } else { @@ -1655,7 +1662,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(ALPHA) - if (a3) { + if (check_errno && a3) { tcp->u_rval = -1; u_error = r0; } @@ -1664,7 +1671,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(SPARC) - if (regs.psr & PSR_C) { + if (check_errno && regs.psr & PSR_C) { tcp->u_rval = -1; u_error = regs.u_regs[U_REG_O0]; } @@ -1673,7 +1680,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(SPARC64) - if (regs.tstate & 0x1100000000UL) { + if (check_errno && regs.tstate & 0x1100000000UL) { tcp->u_rval = -1; u_error = regs.u_regs[U_REG_O0]; } @@ -1682,7 +1689,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(HPPA) - if (is_negated_errno(r28)) { + if (check_errno && is_negated_errno(r28)) { tcp->u_rval = -1; u_error = -r28; } @@ -1692,7 +1699,7 @@ get_error(struct tcb *tcp) } # elif defined(SH) /* interpret R0 as return value or error number */ - if (is_negated_errno(r0)) { + if (check_errno && is_negated_errno(r0)) { tcp->u_rval = -1; u_error = -r0; } @@ -1702,7 +1709,7 @@ get_error(struct tcb *tcp) } # elif defined(SH64) /* interpret result as return value or error number */ - if (is_negated_errno(r9)) { + if (check_errno && is_negated_errno(r9)) { tcp->u_rval = -1; u_error = -r9; } @@ -1711,7 +1718,7 @@ get_error(struct tcb *tcp) u_error = 0; } # elif defined(CRISV10) || defined(CRISV32) - if (r10 && (unsigned) -r10 < nerrnos) { + if (check_errno && r10 && (unsigned) -r10 < nerrnos) { tcp->u_rval = -1; u_error = -r10; } @@ -1724,7 +1731,7 @@ get_error(struct tcb *tcp) /* interpret result as return value or error number */ if (upeek(tcp, PTREGS_OFFSET_REG(0), &rval) < 0) return -1; - if (rval < 0 && rval > -nerrnos) { + if (check_errno && rval < 0 && rval > -nerrnos) { tcp->u_rval = -1; u_error = -rval; } @@ -1734,7 +1741,7 @@ get_error(struct tcb *tcp) } # elif defined(MICROBLAZE) /* interpret result as return value or error number */ - if (is_negated_errno(r3)) { + if (check_errno && is_negated_errno(r3)) { tcp->u_rval = -1; u_error = -r3; } |