diff options
Diffstat (limited to 'guts/setresuid.c')
-rw-r--r-- | guts/setresuid.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/guts/setresuid.c b/guts/setresuid.c index 41dd81d..9c07e4c 100644 --- a/guts/setresuid.c +++ b/guts/setresuid.c @@ -4,27 +4,27 @@ * int rc = -1; */ rc = 0; - if (pseudo_euid != 0 && ruid != -1 && + if (pseudo_euid != 0 && ruid != (uid_t) -1 && ruid != pseudo_euid && ruid != pseudo_ruid && ruid != pseudo_suid) { rc = -1; errno = EPERM; } - if (pseudo_euid != 0 && euid != -1 && + if (pseudo_euid != 0 && euid != (uid_t) -1 && euid != pseudo_euid && euid != pseudo_ruid && euid != pseudo_suid) { rc = -1; errno = EPERM; } - if (pseudo_euid != 0 && suid != -1 && + if (pseudo_euid != 0 && suid != (uid_t) -1 && suid != pseudo_euid && suid != pseudo_ruid && suid != pseudo_suid) { rc = -1; errno = EPERM; } if (rc != -1) { - if (ruid != -1) + if (ruid != (uid_t) -1) pseudo_ruid = ruid; - if (euid != -1) + if (euid != (uid_t) -1) pseudo_euid = euid; - if (suid != -1) + if (suid != (uid_t) -1) pseudo_suid = suid; pseudo_fuid = pseudo_euid; pseudo_client_touchuid(); |