X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fmodify.c;h=4e947bfbd72cc81325129a89a2539b9ce4f1f3c7;hb=c9ec6b0cabf7c47ac9dbd9a74d4aba33934e6223;hp=a44915618dc31536c76c57927849a6d2d2486dcb;hpb=0b6772492fb420f729536e2e6c06a4637181e2d4;p=openldap diff --git a/servers/slapd/back-ldap/modify.c b/servers/slapd/back-ldap/modify.c index a44915618d..4e947bfbd7 100644 --- a/servers/slapd/back-ldap/modify.c +++ b/servers/slapd/back-ldap/modify.c @@ -66,7 +66,7 @@ ldap_back_modify( ber_int_t msgid; lc = ldap_back_getconn(li, conn, op); - if ( !lc || !ldap_back_dobind( lc, conn, op ) ) { + if ( !lc || !ldap_back_dobind( li, lc, conn, op ) ) { return( -1 ); } @@ -107,10 +107,12 @@ ldap_back_modify( mods = (LDAPMod *)ch_malloc(i*sizeof(LDAPMod)); if (mods == NULL) { + rc = LDAP_NO_MEMORY; goto cleanup; } modv = (LDAPMod **)ch_malloc((i+1)*sizeof(LDAPMod *)); if (modv == NULL) { + rc = LDAP_NO_MEMORY; goto cleanup; } @@ -160,17 +162,15 @@ ldap_back_modify( rc = ldap_modify_ext( lc->ld, mdn.bv_val, modv, op->o_ctrls, NULL, &msgid ); cleanup:; -#ifdef ENABLE_REWRITE if ( mdn.bv_val != dn->bv_val ) { -#endif /* ENABLE_REWRITE */ free( mdn.bv_val ); -#ifdef ENABLE_REWRITE } -#endif /* ENABLE_REWRITE */ - for (i=0; modv[i]; i++) + for (i=0; modv[i]; i++) { ch_free(modv[i]->mod_bvalues); - ch_free(mods); - ch_free(modv); - return( ldap_back_op_result( lc, conn, op, msgid, rc )); + } + ch_free( mods ); + ch_free( modv ); + + return ldap_back_op_result( li, lc, conn, op, msgid, rc, 1 ); }