Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Compare Revisions
d7fd65da6a5939ab5b4c51adc44075aa4474d7c5...fa6d19d47f9537faacd660ab2006eab27506b79d
Commits (2)
ITS#9135 fix index error on collapsed range
· ce6d302c
Howard Chu
authored
Aug 13, 2020
and
Quanah Gibson-Mount
committed
Aug 28, 2020
ce6d302c
ITS#9135
· fa6d19d4
Quanah Gibson-Mount
authored
Aug 28, 2020
fa6d19d4
Show whitespace changes
Inline
Side-by-side
CHANGES
View file @
fa6d19d4
...
@@ -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)
...
...
servers/slapd/back-mdb/idl.c
View file @
fa6d19d4
...
@@ -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 dup
2
"
;
goto
fail
;
goto
fail
;
}
}
}
else
{
}
else
{
...
...