blob: 687740da6198a9e1cbdc46bbc9a4c871cdc521fb (
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
28
29
30
31
32
33
34
35
36
37
38
39
|
/* ISC license. */
#undef _POSIX_C_SOURCE
#undef _XOPEN_SOURCE
#ifndef _BSD_SOURCE
#define _BSD_SOURCE
#endif
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#ifndef _DEFAULT_SOURCE
#define _DEFAULT_SOURCE
#endif
#ifndef _NETBSD_SOURCE
#define _NETBSD_SOURCE
#endif
#ifndef __EXTENSIONS__
#define __EXTENSIONS__
#endif
#include <sys/types.h>
#include <unistd.h>
#include <grp.h>
int main (void)
{
gid_t gid = getegid() ;
gid_t list[NGROUPS_MAX] ;
int i = 0 ;
int r = getgroups(NGROUPS_MAX, list) ;
if (r < 0) return 111 ;
for (; i < r ; i++) if (list[i] == gid) return 0 ;
return 1 ;
}
|