mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-07 14:18:15 +08:00
ITS#7180 fix mdb_entry_get when mdb_entry_next was not called
This commit is contained in:
parent
fd978ebe9d
commit
c4325af7e0
@ -369,7 +369,24 @@ Entry*
|
||||
mdb_tool_entry_get( BackendDB *be, ID id )
|
||||
{
|
||||
Entry *e = NULL;
|
||||
int rc;
|
||||
|
||||
if ( !txn ) {
|
||||
struct mdb_info *mdb = (struct mdb_info *) be->be_private;
|
||||
rc = mdb_txn_begin( mdb->mi_dbenv, NULL,
|
||||
(slapMode & SLAP_TOOL_READONLY) ? MDB_RDONLY : 0, &txn );
|
||||
if ( rc )
|
||||
return NULL;
|
||||
}
|
||||
if ( !cursor ) {
|
||||
struct mdb_info *mdb = (struct mdb_info *) be->be_private;
|
||||
rc = mdb_cursor_open( txn, mdb->mi_id2entry, &cursor );
|
||||
if ( rc ) {
|
||||
mdb_txn_abort( txn );
|
||||
txn = NULL;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
(void)mdb_tool_entry_get_int( be, id, &e );
|
||||
return e;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user