X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fmodify.c;h=1ef124d5544cd6f8d4208ae648b0db144c0cf4b5;hb=ab620c46541dd9b8306008a170cc5a5be0f12eb2;hp=2f74c108f1aa65a5c8173dcb44344d3154e385e9;hpb=d5bc2084be320a8a434936d9ec8a30f397cd8c16;p=openldap diff --git a/servers/slapd/back-ldbm/modify.c b/servers/slapd/back-ldbm/modify.c index 2f74c108f1..1ef124d554 100644 --- a/servers/slapd/back-ldbm/modify.c +++ b/servers/slapd/back-ldbm/modify.c @@ -32,6 +32,7 @@ ldbm_back_modify( 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 ) {