* syscalls.cc (seteuid32): Treat ILLEGAL_UID invalid.
(setegid32): Treat ILLEGAL_GID invalid.
This commit is contained in:
		| @@ -1,3 +1,8 @@ | ||||
| 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 | ||||
|   | ||||
| @@ -1943,14 +1943,18 @@ seteuid32 (__uid32_t uid) | ||||
|   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; | ||||
| @@ -2122,11 +2126,15 @@ setuid (__uid16_t uid) | ||||
| 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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user