X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fmodify.c;h=1ef124d5544cd6f8d4208ae648b0db144c0cf4b5;hb=ab620c46541dd9b8306008a170cc5a5be0f12eb2;hp=7b0d141d0f131a7d08335fc01e468bcf4bbd9e27;hpb=3952bc8e95a2b21aced14f890028f12d00e191fa;p=openldap diff --git a/servers/slapd/back-ldbm/modify.c b/servers/slapd/back-ldbm/modify.c index 7b0d141d0f..1ef124d554 100644 --- a/servers/slapd/back-ldbm/modify.c +++ b/servers/slapd/back-ldbm/modify.c @@ -25,13 +25,14 @@ ldbm_back_modify( ) { struct ldbminfo *li = (struct ldbminfo *) be->be_private; - char *matched = NULL; + char *matched; Entry *e; int i, err; LDAPMod *mod; Debug(LDAP_DEBUG_ARGS, "ldbm_back_modify:\n", 0, 0, 0); + /* acquire and lock entry */ if ( (e = dn2entry_w( be, dn, &matched )) == NULL ) { send_ldap_result( conn, op, LDAP_NO_SUCH_OBJECT, matched, NULL ); @@ -41,10 +42,6 @@ ldbm_back_modify( return( -1 ); } - /* check for deleted */ - - /* lock entry */ - if ( (err = acl_check_mods( be, conn, op, e, mods )) != LDAP_SUCCESS ) { send_ldap_result( conn, op, err, NULL, NULL ); goto error_return; @@ -53,15 +50,15 @@ ldbm_back_modify( for ( mod = mods; mod != NULL; mod = mod->mod_next ) { switch ( mod->mod_op & ~LDAP_MOD_BVALUES ) { case LDAP_MOD_ADD: - err = add_values( e, mod, op->o_dn ); + err = add_values( e, mod, op->o_ndn ); break; case LDAP_MOD_DELETE: - err = delete_values( e, mod, op->o_dn ); + err = delete_values( e, mod, op->o_ndn ); break; case LDAP_MOD_REPLACE: - err = replace_values( e, mod, op->o_dn ); + err = replace_values( e, mod, op->o_ndn ); break; } @@ -80,12 +77,12 @@ ldbm_back_modify( } /* check for abandon */ - pthread_mutex_lock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_lock( &op->o_abandonmutex ); if ( op->o_abandon ) { - pthread_mutex_unlock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); goto error_return; } - pthread_mutex_unlock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); /* modify indexes */ if ( index_add_mods( be, mods, e->e_id ) != 0 ) { @@ -94,12 +91,12 @@ ldbm_back_modify( } /* check for abandon */ - pthread_mutex_lock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_lock( &op->o_abandonmutex ); if ( op->o_abandon ) { - pthread_mutex_unlock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); goto error_return; } - pthread_mutex_unlock( &op->o_abandonmutex ); + ldap_pvt_thread_mutex_unlock( &op->o_abandonmutex ); /* change the entry itself */ if ( id2entry_add( be, e ) != 0 ) {