mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-02 13:09:42 -05:00
Fix bdb_tool_dn2id_get() - nobody should be calling bdb_dn2id() directly,
always call through the cache instead - bdb_cache_find_ndn().
This commit is contained in:
parent
c09550766b
commit
c8bffb5584
1 changed files with 11 additions and 9 deletions
|
|
@ -140,7 +140,8 @@ ID bdb_tool_dn2id_get(
|
|||
{
|
||||
Operation op = {0};
|
||||
Opheader ohdr = {0};
|
||||
EntryInfo ei = {0};
|
||||
EntryInfo *ei = NULL;
|
||||
int rc;
|
||||
|
||||
if ( BER_BVISEMPTY(dn) )
|
||||
return 0;
|
||||
|
|
@ -150,11 +151,12 @@ ID bdb_tool_dn2id_get(
|
|||
op.o_tmpmemctx = NULL;
|
||||
op.o_tmpmfuncs = &ch_mfuncs;
|
||||
|
||||
ei.bei_id = NOID;
|
||||
|
||||
bdb_dn2id( &op, NULL, dn, &ei );
|
||||
rc = bdb_cache_find_ndn( &op, NULL, dn, &ei );
|
||||
if ( ei ) bdb_cache_entryinfo_unlock( ei );
|
||||
if ( rc == DB_NOTFOUND )
|
||||
return NOID;
|
||||
|
||||
return ei.bei_id;
|
||||
return ei->bei_id;
|
||||
}
|
||||
|
||||
int bdb_tool_id2entry_get(
|
||||
|
|
@ -327,8 +329,8 @@ ID bdb_tool_entry_put(
|
|||
assert( be != NULL );
|
||||
assert( slapMode & SLAP_TOOL_MODE );
|
||||
|
||||
assert( text != NULL );
|
||||
assert( text->bv_val != NULL );
|
||||
assert( text );
|
||||
assert( text->bv_val );
|
||||
assert( text->bv_val[0] == '\0' ); /* overconservative? */
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "=> " LDAP_XSTRING(bdb_tool_entry_put)
|
||||
|
|
@ -524,8 +526,8 @@ ID bdb_tool_entry_modify(
|
|||
assert( be != NULL );
|
||||
assert( slapMode & SLAP_TOOL_MODE );
|
||||
|
||||
assert( text != NULL );
|
||||
assert( text->bv_val != NULL );
|
||||
assert( text );
|
||||
assert( text->bv_val );
|
||||
assert( text->bv_val[0] == '\0' ); /* overconservative? */
|
||||
|
||||
assert ( e->e_id != NOID );
|
||||
|
|
|
|||
Loading…
Reference in a new issue