wrong logic in .../source3/lib/system.c when checking for HAVE_SETGROUPS.
diff -u ./source3/lib/system.c.orig ./source3/lib/system.c
--- ./source3/lib/system.c.orig 2010-05-17 06:51:23.000000000 -0500
+++ ./source3/lib/system.c 2010-05-27 07:13:48.000000000 -0500
@@ -1201,17 +1205,15 @@
int sys_setgroups(gid_t UNUSED(primary_gid), int setlen, gid_t *gidset)
- errno = ENOSYS;
- return -1;
-#endif /* HAVE_SETGROUPS */
return sys_bsd_setgroups(primary_gid, setlen, gidset);
return sys_broken_setgroups(setlen, gidset);
return setgroups(setlen, gidset);
+ errno = ENOSYS;
+ return -1;
There's a releated but very old and closed report, #545.
Created attachment 5755 [details]
Created attachment 5770 [details]
patch for system.c
removing an unrelated hunk from my patch
Hmm, not sure about this. Don't we also mess around with samba_setgroups and sys_setgroups?
Might this have to do with setgroups bugs some people see on some platforms? Volker, can you have a look at this?
(In reply to comment #3)
Same patch still seems to be needed in Samba 3.6.7