commit 41f75b69740bd205864bd34afbb65ab0a3776136
from: Alexander Barton <alex@barton.de>
date: Mon Aug 26 22:41:36 2013 UTC

Ignore "operation not permitted" while dropping groups

Without this exception, you can't start ngIRCd as user any more,
it is analog to setting the user and group ID.

commit - e009ccbe66f67a4c5344d6a1f415c50b699765ad
commit + 41f75b69740bd205864bd34afbb65ab0a3776136
blob - 4099719b8ebe703e66960c97ae999df1f3274043
blob + e26ac3bd652cf18b2067b4c47e1eb0ad7172ee72
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
@@ -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