aboutsummaryrefslogtreecommitdiffstats
path: root/guts/setgid.c
blob: 0bb5f274af896dbc1952d08378016e20828497d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* 
 * static int
 * wrap_setgid(gid_t gid) {
 *	int rc = -1;
 */
	if (pseudo_euid == 0) {
		pseudo_rgid = gid;
		pseudo_egid = gid;
		pseudo_sgid = gid;
		pseudo_fgid = gid;
		pseudo_client_touchgid();
		rc = 0;
	} else if (pseudo_egid == gid || pseudo_sgid == gid || pseudo_rgid == gid) {
		pseudo_egid = gid;
		pseudo_fgid = gid;
		pseudo_client_touchgid();
		rc = 0;
	} else {
		rc = -1;
		errno = EPERM;
	}
/*	return rc;
 * }
 */