From: Howard Chu Date: Tue, 19 Jul 2005 02:12:34 +0000 (+0000) Subject: Fix bdb_tool_dn2id_get() - nobody should be calling bdb_dn2id() directly, X-Git-Tag: OPENLDAP_AC_BP~345 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c8bffb5584d269c18889bfc4486cfac8c2bf01f8;p=openldap Fix bdb_tool_dn2id_get() - nobody should be calling bdb_dn2id() directly, always call through the cache instead - bdb_cache_find_ndn(). --- diff --git a/servers/slapd/back-bdb/tools.c b/servers/slapd/back-bdb/tools.c index c64bd149ab..b4be34d677 100644 --- a/servers/slapd/back-bdb/tools.c +++ b/servers/slapd/back-bdb/tools.c @@ -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 );