fix bug #281 by surrounding pdb_getgrgid() with become/unbecome_root()
authorGerald Carter <jerry@samba.org>
Mon, 11 Aug 2003 07:05:23 +0000 (07:05 +0000)
committerGerald Carter <jerry@samba.org>
Mon, 11 Aug 2003 07:05:23 +0000 (07:05 +0000)
(This used to be commit f6a01f51159ccd822c6e764b7243fff375f22747)

source3/passdb/passdb.c

index e005913eb27add4bc2b84c148759b96bbd6c375c..05c452f33d4ceade459d14643b95f98bd1c5ff1b 100644 (file)
@@ -1167,11 +1167,18 @@ BOOL local_sid_to_uid(uid_t *puid, const DOM_SID *psid, enum SID_NAME_USE *name_
 DOM_SID *local_gid_to_sid(DOM_SID *psid, gid_t gid)
 {
        GROUP_MAP group;
+       BOOL ret;
        
        /* we don't need to disable winbindd since the gid is stored in 
           the GROUP_MAP object */
+          
+       /* done as root since ldap backend requires root to open a connection */
 
-       if ( !pdb_getgrgid( &group, gid ) ) {
+       become_root();
+       ret = pdb_getgrgid( &group, gid );
+       unbecome_root();
+       
+       if ( !ret ) {
 
                /* fallback to rid mapping if enabled */