ITS#6983 fix duplicate entry in HDB subtree IDL

This commit is contained in:
Howard Chu 2011-08-25 14:47:23 -07:00
parent ab69775dd0
commit 1c476b302e
3 changed files with 4 additions and 1 deletions

View file

@ -945,6 +945,7 @@ hdb_dn2idl_internal(
cx->rc = bdb_idl_cache_get(cx->bdb, cx->db, &cx->key, ids);
if ( cx->rc == LDAP_SUCCESS ) {
if ( cx->depth ) {
bdb_idl_delete( cx->tmp, cx->id ); /* ITS#6983, drop our own ID */
bdb_idl_append( cx->ids, cx->tmp );
cx->need_sort = 1;
}

View file

@ -219,7 +219,7 @@ int bdb_idl_insert( ID *ids, ID id )
return 0;
}
static int bdb_idl_delete( ID *ids, ID id )
int bdb_idl_delete( ID *ids, ID id )
{
unsigned x;

View file

@ -281,6 +281,7 @@ bdb_idl_cache_del_id(
#define bdb_idl_next BDB_SYMBOL(idl_next)
#define bdb_idl_search BDB_SYMBOL(idl_search)
#define bdb_idl_insert BDB_SYMBOL(idl_insert)
#define bdb_idl_delete BDB_SYMBOL(idl_delete)
#define bdb_idl_intersection BDB_SYMBOL(idl_intersection)
#define bdb_idl_union BDB_SYMBOL(idl_union)
#define bdb_idl_sort BDB_SYMBOL(idl_sort)
@ -303,6 +304,7 @@ int bdb_idl_fetch_key(
int get_flag );
int bdb_idl_insert( ID *ids, ID id );
int bdb_idl_delete( ID *ids, ID id );
int bdb_idl_insert_key(
BackendDB *be,