r916: Memory leak fix from kawasa_r@itg.hitachi.co.jp.
authorJeremy Allison <jra@samba.org>
Thu, 27 May 2004 00:04:43 +0000 (00:04 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:49 +0000 (10:51 -0500)
Jeremy.

source/sam/idmap_ldap.c

index 2124fb687937583fba2985b2dcdc5aeb6e80f221..d83c0bdc4d81ab2cd4136cc2ba06e4f6445a9088 100644 (file)
@@ -711,8 +711,12 @@ static NTSTATUS verify_idpool( void )
                        get_attr_key2string(idpool_attr_list, LDAP_ATTR_UIDNUMBER), uid_str );
                smbldap_set_mod( &mods, LDAP_MOD_ADD,
                        get_attr_key2string(idpool_attr_list, LDAP_ATTR_GIDNUMBER), gid_str );
-               
-               rc = smbldap_modify(ldap_state.smbldap_state, lp_ldap_idmap_suffix(), mods);
+               if (mods) {
+                       rc = smbldap_modify(ldap_state.smbldap_state, lp_ldap_idmap_suffix(), mods);
+                       ldap_mods_free( mods, True );
+               } else {
+                       return NT_STATUS_UNSUCCESSFUL;
+               }
        }
 
        return ( rc==LDAP_SUCCESS ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL );