r25161: Don't panic if setgroups fails in non-root mode.
authorJames Peach <jpeach@samba.org>
Fri, 14 Sep 2007 15:08:07 +0000 (15:08 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:30:46 +0000 (12:30 -0500)
source/smbd/sec_ctx.c

index 108d1794c71403b19ffe45e8c93296817d86e60d..08d522cdd7aa421c5b221e8e8f0ba58c5631995e 100644 (file)
@@ -239,7 +239,7 @@ static void set_unix_security_ctx(uid_t uid, gid_t gid, int ngroups, gid_t *grou
        /* Start context switch */
        gain_root();
 #ifdef HAVE_SETGROUPS
-       if (sys_setgroups(gid, ngroups, groups) != 0) {
+       if (sys_setgroups(gid, ngroups, groups) != 0 && !non_root_mode()) {
                smb_panic("sys_setgroups failed");
        }
 #endif
@@ -280,7 +280,7 @@ static void set_unix_security_ctx(uid_t uid, gid_t gid, int ngroups, gid_t *grou
 
 
        if (syscall(SYS_initgroups, (ngroups > max) ? max : ngroups,
-                       groups, uid) == 1) {
+                       groups, uid) == -1 && !non_root_mode()) {
                DEBUG(0, ("WARNING: failed to set group list "
                        "(%d groups) for UID %ld: %s\n",
                        ngroups, uid, strerror(errno)));