Ignore "operation not permitted" while dropping groups
authorAlexander Barton <alex@barton.de>
Mon, 26 Aug 2013 22:39:59 +0000 (00:39 +0200)
committerAlexander Barton <alex@barton.de>
Mon, 26 Aug 2013 22:41:36 +0000 (00:41 +0200)
Without this exception, you can't start ngIRCd as user any more,
it is analog to setting the user and group ID.

src/ngircd/ngircd.c

index 4099719b8ebe703e66960c97ae999df1f3274043..e26ac3bd652cf18b2067b4c47e1eb0ad7172ee72 100644 (file)
@@ -725,9 +725,11 @@ NGIRCd_Init(bool NGIRCd_NoDaemon)
                                goto out;
                }
                if (setgroups(0, NULL) != 0) {
-                       Log(LOG_ERR, "Can't drop supplementary group ids: %s!",
+                       real_errno = errno;
+                       Log(LOG_ERR, "Can't drop supplementary group IDs: %s!",
                                        strerror(errno));
-                       goto out;
+                       if (real_errno != EPERM)
+                               goto out;
                }
        }
 #endif