tracking down setgroups failed problems, turns out that the order
authorLuke Leighton <lkcl@samba.org>
Wed, 5 Apr 2000 04:29:37 +0000 (04:29 +0000)
committerLuke Leighton <lkcl@samba.org>
Wed, 5 Apr 2000 04:29:37 +0000 (04:29 +0000)
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....

source/lib/system.c

index 933b0c7a72bd54b9b8985a423de338aa913479e0..3376272758c7fe055ff0b914b8eb5f49310566c3 100644 (file)
@@ -637,7 +637,12 @@ int sys_getgroups(int setlen, gid_t *gidset)
 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;
@@ -668,6 +673,8 @@ int sys_setgroups(int setlen, gid_t *gidset)
     int saved_errno = errno;
     free((char *)group_list);
     errno = saved_errno;
+         DEBUG(10,("sys_setgroups failed: pid %d\n", getpid()));
+         dbgflush();
     return -1;
   }