summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2011-01-18 17:36:20 +0000
committerDmitry V. Levin <ldv@altlinux.org>2011-01-19 00:52:15 +0000
commit50a218d4ac83e6adf6f44785037dd25bd8037921 (patch)
tree86aea96cbd9fa4c9a2bd571c8b98e98b9ab9c390
parent62d0428cf599ba0a6f2f73c83e174fada31ff7e7 (diff)
downloadstrace-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.h1
-rw-r--r--linux/alpha/syscallent.h8
-rw-r--r--linux/arm/syscallent.h24
-rw-r--r--linux/avr32/syscallent.h12
-rw-r--r--linux/bfin/syscallent.h24
-rw-r--r--linux/dummy.h10
-rw-r--r--linux/hppa/syscallent.h12
-rw-r--r--linux/i386/syscallent.h24
-rw-r--r--linux/ia64/syscallent.h12
-rw-r--r--linux/m68k/syscallent.h24
-rw-r--r--linux/microblaze/syscallent.h24
-rw-r--r--linux/mips/syscallent.h36
-rw-r--r--linux/powerpc/syscallent.h12
-rw-r--r--linux/s390/syscallent.h22
-rw-r--r--linux/s390x/syscallent.h12
-rw-r--r--linux/sh/syscallent.h12
-rw-r--r--linux/sh64/syscallent.h14
-rw-r--r--linux/sparc/syscallent.h24
-rw-r--r--linux/tile/syscallent.h12
-rw-r--r--linux/x86_64/syscallent.h12
-rw-r--r--process.c16
-rw-r--r--syscall.c47
22 files changed, 208 insertions, 186 deletions
diff --git a/defs.h b/defs.h
index 5c7a3329f..3c9504e83 100644
--- a/defs.h
+++ b/defs.h
@@ -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 */
diff --git a/process.c b/process.c
index c4615a24b..764abaf6f 100644
--- a/process.c
+++ b/process.c
@@ -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;
diff --git a/syscall.c b/syscall.c
index 8fcd10bb3..39135f768 100644
--- a/syscall.c
+++ b/syscall.c
@@ -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;
}