aboutsummaryrefslogtreecommitdiffstats
path: root/ports/uids_generic/guts/setgid.c
blob: b94db1aa96d48b72d0b7f3a7016ffa8d71d6b1cb (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
25
26
27
/* 
 * Copyright (c) 2008-2010 Wind River Systems; see
 * guts/COPYRIGHT for information.
 *
 * 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;
 * }
 */