mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#7594 Invalidate a dropped MDB DB's cursors.
This commit is contained in:
parent
62e4c4f9d0
commit
2bacf6e59e
@ -7450,7 +7450,7 @@ mdb_drop0(MDB_cursor *mc, int subs)
|
||||
|
||||
int mdb_drop(MDB_txn *txn, MDB_dbi dbi, int del)
|
||||
{
|
||||
MDB_cursor *mc;
|
||||
MDB_cursor *mc, *m2;
|
||||
int rc;
|
||||
|
||||
if (!txn || !dbi || dbi >= txn->mt_numdbs || (unsigned)del > 1 || !(txn->mt_dbflags[dbi] & DB_VALID))
|
||||
@ -7464,6 +7464,9 @@ int mdb_drop(MDB_txn *txn, MDB_dbi dbi, int del)
|
||||
return rc;
|
||||
|
||||
rc = mdb_drop0(mc, mc->mc_db->md_flags & MDB_DUPSORT);
|
||||
/* Invalidate the dropped DB's cursors */
|
||||
for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2 = m2->mc_next)
|
||||
m2->mc_flags &= ~C_INITIALIZED;
|
||||
if (rc)
|
||||
goto leave;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user