Commits (2)
...@@ -8,6 +8,7 @@ OpenLDAP 2.4.52 Engineering ...@@ -8,6 +8,7 @@ OpenLDAP 2.4.52 Engineering
Fixed libldap hang when using UDP and server down (ITS#9328) Fixed libldap hang when using UDP and server down (ITS#9328)
Fixed slapd syncrepl rare deadlock due to network issues (ITS#9324) Fixed slapd syncrepl rare deadlock due to network issues (ITS#9324)
Fixed slapd syncrepl regression that could trigger an assert (ITS#9329) Fixed slapd syncrepl regression that could trigger an assert (ITS#9329)
Fixed slapd-mdb index error with collapsed range (ITS#9135)
OpenLDAP 2.4.51 Release (2020/08/11) OpenLDAP 2.4.51 Release (2020/08/11)
Added slapo-ppolicy implement Netscape password policy controls (ITS#9279) Added slapo-ppolicy implement Netscape password policy controls (ITS#9279)
......
...@@ -625,9 +625,30 @@ mdb_idl_delete_keys( ...@@ -625,9 +625,30 @@ mdb_idl_delete_keys(
} }
if ( lo2 >= hi2 ) { if ( lo2 >= hi2 ) {
/* The range has collapsed... */ /* The range has collapsed... */
rc = mdb_cursor_del( cursor, MDB_NODUPDATA ); /* delete the range marker */
rc = mdb_cursor_del( cursor, 0 );
if ( rc != 0 ) {
err = "c_del dup1";
goto fail;
}
/* skip past deleted marker */
rc = mdb_cursor_get( cursor, &key, &data, MDB_NEXT_DUP );
if ( rc != 0 ) {
err = "c_get dup1";
goto fail;
}
/* delete the requested id */
if ( id == hi ) {
/* skip lo */
rc = mdb_cursor_get( cursor, &key, &data, MDB_NEXT_DUP );
if ( rc != 0 ) {
err = "c_get dup2";
goto fail;
}
}
rc = mdb_cursor_del( cursor, 0 );
if ( rc != 0 ) { if ( rc != 0 ) {
err = "c_del dup"; err = "c_del dup2";
goto fail; goto fail;
} }
} else { } else {
......