]> granicus.if.org Git - strace/commitdiff
Fix decoding of get[ug]id, gete[ug]id and setfs[ug]id return values
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 18 Jan 2011 17:36:20 +0000 (17:36 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 19 Jan 2011 00:52:15 +0000 (00:52 +0000)
* 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>.

22 files changed:
defs.h
linux/alpha/syscallent.h
linux/arm/syscallent.h
linux/avr32/syscallent.h
linux/bfin/syscallent.h
linux/dummy.h
linux/hppa/syscallent.h
linux/i386/syscallent.h
linux/ia64/syscallent.h
linux/m68k/syscallent.h
linux/microblaze/syscallent.h
linux/mips/syscallent.h
linux/powerpc/syscallent.h
linux/s390/syscallent.h
linux/s390x/syscallent.h
linux/sh/syscallent.h
linux/sh64/syscallent.h
linux/sparc/syscallent.h
linux/tile/syscallent.h
linux/x86_64/syscallent.h
process.c
syscall.c

diff --git a/defs.h b/defs.h
index 5c7a3329f8e4a698d725018e3a16b5e0cef211c6..3c9504e83345a59182ba78381b61827fd20ea8ff 100644 (file)
--- 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,
index 5396fcbb4b043b5d24de6c10d3a4bde1caf28c90..c74fbeeee4fbff368e112cd258c8483ce664604b 100644 (file)
@@ -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 */
        { 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 */
index 0b9692db44b3dd0f3c76535af03123dd5c13dc8a..b942de7bcc976d2440b4de1906ee146ce2606370 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index 57c133691d961668cfaa97e26e54d256394a00a6..0c223911cf65e9d1053ddb4b8df4733645738f13 100644 (file)
@@ -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 */
        { 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 */
index 30c5b54cd4ed4247d49a73bdd1593598c155fb2d..dcf5b56147bbd4cec1717a7e0706e6a9f539c835 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index ce81649c4457bfa2e5de3d02b5b7a76c846ceb9f..3b8bff0d40f94d475b90071806239db61cd34094 100644 (file)
 #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
 /* 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
index 95e8a34c07b5ecdded1a589eb742411cedec5f15..0a2a992f2d910e3a64c68087bf0f085f196094f8 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
index 93ca3cf2a06ff11b25685d14d08fd7952846a141..003efc3041a566a675361c3a2476092ea1ba22ad 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index e2bd1e48a9a836600efa44271baa90411a9f086d..6e706983b9b8a37dd1fcf12bc9e01d5c00dcbbc1 100644 (file)
        { 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 */
        { 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 */
        { 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 */
index 0f9376081bb397b0c1f386d18a0e6d2a500d3c7f..ac2481a763acfd57f58ddef6d1406c80a824ce66 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index 0240a445bb10c744b3a35cc2de4301d5bcb72a45..f967ae6a10011565ac978fee3466738904d4ae0d 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index f2914bf21a239df971a0b81a14717f5e481a2653..e69092d0e317d98bac8ee56fa76a00918e34c118 100644 (file)
        { 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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
        { 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 */
index db1641db869ce974177b6ace71f2fcc250864109..c97479c56e2bca421ef2e8896b2fd57e056b46be 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
index 0fce32bba259072ccb94dc66ce1a5342970654a9..035ed71d65ee96df6328bd53ae683ecbcb9c3b07 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
index 85694f33a7aea619d1a9184f90d7fdca353028ff..b98dfef13a5bec80f20392a4f217a4014317f3d6 100644 (file)
        { -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 */
        { 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 */
index 754740411f36481501ceff9d6b88840d001e7ba7..2ff077367beb098d5217dcc77ff7e2bed59f318d 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
index fcfd0fa252f5acda1961f532868f21351f7aec0b..173abadc90f1642a9f58044f42ce3d984dfc5a9e 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
index 45a4c70e6996df2bb61db063a2d2ffd31a3fa6f9..1ff870bcc676669d167d0f102f0a09ac46fcb18f 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
        { 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 */
index 5948a09ee8cba2f0a3d2550db0031f149fa1ba1a..c7f49d33a740d9cc60ad49eacff7b9e6fe4c5a8d 100644 (file)
@@ -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 */
        { 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 */
        { 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 */
index c9a72bfd12ab10998775b18d6c8448ad90814b9a..c2391888bf1909d1a44ec5ef714af786458a4aaf 100644 (file)
        { 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 */
        { 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 */
index c4615a24b16ad61c5b93f36b77763c098eb38a73..764abaf6f1bb88b6b84fd50821e783f54c6c3fca 100644 (file)
--- 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;
index 8fcd10bb315723365b306fda61560419fb9abf81..39135f768cda16ea40ebd73e881bb04e3f422006 100644 (file)
--- a/syscall.c
+++ b/syscall.c
 #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;
                }