diff options
-rw-r--r-- | include/grp.h | 6 | ||||
-rw-r--r-- | include/unistd.h | 2 | ||||
-rw-r--r-- | src/linux/setgroups.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/include/grp.h b/include/grp.h index d4a3526a..51851851 100644 --- a/include/grp.h +++ b/include/grp.h @@ -28,6 +28,12 @@ struct group *getgrent(void); void endgrent(void); void setgrent(void); +#ifdef _GNU_SOURCE +int getgrouplist(const char *, gid_t, gid_t *, int *); +int setgroups(size_t, const gid_t *); +int initgroups(const char *, gid_t); +#endif + #ifdef __cplusplus } #endif diff --git a/include/unistd.h b/include/unistd.h index b8f783ed..05180de0 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -154,7 +154,7 @@ int getpagesize(void); int sethostname(const char *, size_t); int usleep(unsigned); unsigned ualarm(unsigned, unsigned); -int setgroups(int, const gid_t []); +int setgroups(size_t, const gid_t []); int setresuid(uid_t, uid_t, uid_t); int setresgid(gid_t, gid_t, gid_t); #endif diff --git a/src/linux/setgroups.c b/src/linux/setgroups.c index bdee58d5..9758940a 100644 --- a/src/linux/setgroups.c +++ b/src/linux/setgroups.c @@ -1,7 +1,7 @@ #include <unistd.h> #include "syscall.h" -int setgroups(int count, const gid_t list[]) +int setgroups(size_t count, const gid_t list[]) { return syscall(SYS_setgroups, count, list); } |