This is the mail archive of the
libc-hacker@sourceware.cygnus.com
mailing list for the glibc project.
A patch for setresuid.
- To: drepper@cygnus.com (Ulrich Drepper)
- Subject: A patch for setresuid.
- From: hjl@lucon.org (H.J. Lu)
- Date: Tue, 20 Oct 1998 21:33:59 -0700 (PDT)
- Cc: libc-hacker@cygnus.com (GNU C Library)
Hi,
My machine is broken because of this. BTW, shouldn't we put the
prototype of setresuid in the header file?
Thanks.
--
H.J. Lu (hjl@gnu.org)
---
Tue Oct 20 21:30:10 1998 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Fix
argument types and correct the checking for -1.
Index: sysdeps/unix/sysv/linux/i386/setresuid.c
===================================================================
RCS file: /home/work/cvs/gnu/glibc/sysdeps/unix/sysv/linux/i386/setresuid.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 setresuid.c
--- setresuid.c 1998/10/19 20:54:56 1.1.1.2
+++ setresuid.c 1998/10/21 03:01:58
@@ -29,11 +29,11 @@ extern int __syscall_setresuid (__kernel
__kernel_uid_t sgid);
int
-__setresuid (gid_t ruid, gid_t euid, gid_t suid)
+__setresuid (uid_t ruid, uid_t euid, uid_t suid)
{
- if ((ruid != (uid_t) ((__kernel_uid_t) ruid))
- || (euid != (uid_t) ((__kernel_uid_t) euid))
- || (suid != (uid_t) ((__kernel_uid_t) suid)))
+ if ((ruid != (uid_t) ((__kernel_uid_t) ruid) && ruid != (uid_t) -1)
+ || (euid != (uid_t) ((__kernel_uid_t) euid) && euid != (uid_t) -1)
+ || (suid != (uid_t) ((__kernel_uid_t) suid) && suid != (uid_t) -1))
{
__set_errno (EINVAL);
return -1;