uwrap: Add libc_getgroups().
authorAndreas Schneider <asn@samba.org>
Tue, 17 Dec 2013 12:36:15 +0000 (13:36 +0100)
committerAndreas Schneider <asn@samba.org>
Tue, 17 Dec 2013 12:40:15 +0000 (13:40 +0100)
src/uid_wrapper.c

index dd7778fb8272dc3cd0b4ce0810d1425888580fe3..d9593789346fd922be79d12a296ce6075dbb58cf 100644 (file)
@@ -351,6 +351,13 @@ static int libc_getgroups(int size, gid_t list[])
        return uwrap.libc.fns._libc_getgroups(size, list);
 }
 
+static int libc_setgroups(size_t size, const gid_t *list)
+{
+       uwrap_load_lib_function(UWRAP_LIBC, setgroups);
+
+       return uwrap.libc.fns._libc_setgroups(size, list);
+}
+
 static void *uwrap_libc_fn(struct uwrap *u, const char *fn_name)
 {
        void *func;
@@ -396,7 +403,6 @@ static void uwrap_libc_init(struct uwrap *u)
        }
 #endif
 
-       *(void **) (&u->libc.fns._libc_setgroups) = uwrap_libc_fn(u, "setgroups");
 #ifdef HAVE_SYSCALL
        *(void **) (&u->libc.fns._libc_syscall) = uwrap_libc_fn(u, "syscall");
 #endif
@@ -932,7 +938,7 @@ int setgroups(size_t size, const gid_t *list)
 #endif
 {
        if (!uwrap_enabled()) {
-               return uwrap.libc.fns._libc_setgroups(size, list);
+               return libc_setgroups(size, list);
        }
 
        return uwrap_setgroups(size, list);