Fix bug 4901
authorVolker Lendecke <vl@samba.org>
Fri, 14 Mar 2008 17:01:06 +0000 (18:01 +0100)
committerVolker Lendecke <vl@samba.org>
Fri, 14 Mar 2008 17:03:42 +0000 (18:03 +0100)
Thanks to Laurent Pinchart for bugging me

source/passdb/pdb_ldap.c

index 8c6fa81edb36bc78eb0b028f6eba4282a481644a..e1f57a8337cb5ac566f78e7077bdaca5674519af 100644 (file)
@@ -1795,8 +1795,9 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
                        ldap_mods_free(mods,True);
                return NT_STATUS_UNSUCCESSFUL;
        }
-       
-       if (mods == NULL) {
+
+       if ((lp_ldap_passwd_sync() != LDAP_PASSWD_SYNC_ONLY)
+           && (mods == NULL)) {
                DEBUG(4,("ldapsam_update_sam_account: mods is empty: nothing to update for user: %s\n",
                         pdb_get_username(newpwd)));
                SAFE_FREE(dn);
@@ -1804,7 +1805,11 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
        }
        
        ret = ldapsam_modify_entry(my_methods,newpwd,dn,mods,LDAP_MOD_REPLACE, element_is_changed);
-       ldap_mods_free(mods,True);
+
+       if (mods != NULL) {
+               ldap_mods_free(mods,True);
+       }
+
        SAFE_FREE(dn);
 
        /*