diff options
Diffstat (limited to 'sysdeps/unix/bsd')
-rw-r--r-- | sysdeps/unix/bsd/setegid.c | 13 | ||||
-rw-r--r-- | sysdeps/unix/bsd/seteuid.c | 13 |
2 files changed, 20 insertions, 6 deletions
diff --git a/sysdeps/unix/bsd/setegid.c b/sysdeps/unix/bsd/setegid.c index 85ebea2c96..c4a3780f6d 100644 --- a/sysdeps/unix/bsd/setegid.c +++ b/sysdeps/unix/bsd/setegid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,12 +16,19 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <ansidecl.h> +#include <errno.h> #include <unistd.h> #include <sys/types.h> int -DEFUN(setegid, (gid), gid_t gid) +setegid (gid) + gid_t gid; { + if (gid == (gid_t) ~0) + { + errno = EINVAL; + return -1; + } + return __setregid (-1, gid); } diff --git a/sysdeps/unix/bsd/seteuid.c b/sysdeps/unix/bsd/seteuid.c index a4be2d98a3..f6aa37f153 100644 --- a/sysdeps/unix/bsd/seteuid.c +++ b/sysdeps/unix/bsd/seteuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,12 +16,19 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <ansidecl.h> +#include <errno.h> #include <unistd.h> #include <sys/types.h> int -DEFUN(seteuid, (uid), uid_t uid) +seteuid (uid) + uid_t uid; { + if (uid == (uid_t) ~0) + { + errno = EINVAL; + return -1; + } + return __setreuid (-1, uid); } |