+2002-09-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (seteuid32): Treat ILLEGAL_UID invalid.
+ (setegid32): Treat ILLEGAL_GID invalid.
+
2002-09-10 Pierre Humblet <pierre.humblet@ieee.org>
* grp.cc (initgroups): Call groups::clear_supp to free the
debug_printf ("uid: %d myself->gid: %d", uid, myself->gid);
if (!wincap.has_security ()
- || (uid == myself->uid
- && !cygheap->user.groups.ischanged)
- || uid == ILLEGAL_UID)
+ || (uid == myself->uid && !cygheap->user.groups.ischanged))
{
debug_printf ("Nothing happens");
return 0;
}
+ if (uid == ILLEGAL_UID)
+ {
+ set_errno (EINVAL);
+ return -1;
+ }
+
sigframe thisframe (mainthread);
cygsid usersid;
user_groups &groups = cygheap->user.groups;
extern "C" int
setegid32 (__gid32_t gid)
{
- if ((!wincap.has_security ()) ||
- (gid == myself->gid) ||
- (gid == ILLEGAL_GID))
+ if (!wincap.has_security () || gid == myself->gid)
return 0;
+ if (gid == ILLEGAL_GID)
+ {
+ set_errno (EINVAL);
+ return -1;
+ }
+
sigframe thisframe (mainthread);
user_groups * groups = &cygheap->user.groups;
cygsid gsid;