of fn calls is probably something like this:
become_root()
become_root()
unbecome_root()
become_user()
unbecome_root()
which of course screws up the groups in current_user_saved....
int sys_setgroups(int setlen, gid_t *gidset)
{
#if !defined(HAVE_BROKEN_GETGROUPS)
- return setgroups(setlen, gidset);
+ BOOL ret = setgroups(setlen, gidset);
+ if (ret < 0)
+ {
+ DEBUG(10,("sys_setgroups failed: pid %d\n", getpid()));
+ }
+ return ret;
#else
GID_T *group_list;
int saved_errno = errno;
free((char *)group_list);
errno = saved_errno;
+ DEBUG(10,("sys_setgroups failed: pid %d\n", getpid()));
+ dbgflush();
return -1;
}