summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libcruft/initgroups.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-05-14 13:47:49 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-05-14 13:47:49 +0000
commitf15aa3a552022743398a652165d76bf912c715e5 (patch)
treeb58f8b4c47fc571fbb498d83a4bd4fca226ac6c4 /mdk-stage1/dietlibc/libcruft/initgroups.c
parent189b01c358a1181ddc951adba97a0258d5fc2cf1 (diff)
downloaddrakx-backup-do-not-use-f15aa3a552022743398a652165d76bf912c715e5.tar
drakx-backup-do-not-use-f15aa3a552022743398a652165d76bf912c715e5.tar.gz
drakx-backup-do-not-use-f15aa3a552022743398a652165d76bf912c715e5.tar.bz2
drakx-backup-do-not-use-f15aa3a552022743398a652165d76bf912c715e5.tar.xz
drakx-backup-do-not-use-f15aa3a552022743398a652165d76bf912c715e5.zip
Initial revision
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft/initgroups.c')
-rw-r--r--mdk-stage1/dietlibc/libcruft/initgroups.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/initgroups.c b/mdk-stage1/dietlibc/libcruft/initgroups.c
new file mode 100644
index 000000000..7d24866e9
--- /dev/null
+++ b/mdk-stage1/dietlibc/libcruft/initgroups.c
@@ -0,0 +1,23 @@
+#include <grp.h>
+#include <sys/types.h>
+#include <string.h>
+
+int initgroups(const char *user, gid_t group) {
+ int n=0;
+ gid_t grouplist[32];
+ struct group *g;
+ setgrent();
+ while ((g=getgrent())) {
+ char **duh=g->gr_mem;
+ while (*duh) {
+ if (!strcmp(*duh,user)) {
+ grouplist[n]=g->gr_gid;
+ if (++n>=32)
+ break;
+ }
+ duh++;
+ }
+ }
+ return setgroups(n,grouplist);
+}
+