[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#7234) syncprov entry not freed in result.c
Full_Name: Hallvard B Furuseth
Version: RE24, 0e03b1369f4da5db9d0bdd2445b3a7ccc0c5638f
OS: Linux x86_64
URL:
Submission from: (NULL) (195.1.106.125)
Submitted by: hallvard
syncprov_db_open() does not set op->o_tag before submitting
syncprov_db_otask. This prevents rs_flush_entry() before
slap_send_search_entry()'s error return.
Seen in test018 and test048 with back-ldif.
Two possible fixes:
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -3088,2 +3088,3 @@ syncprov_db_open(
if ( si->si_ctxcsn && !SLAP_DBCLEAN( be )) {
+ op->o_tag = LDAP_REQ_SEARCH;
op->o_req_dn = be->be_suffix[0];
Hopefully the lack of o_tag is not a feature, deliberately
preventing some things from assuming it's a search request.
E.g. maybe more fields in the fake op must be filled in.
Or this test could be less paranoid:
--- a/servers/slapd/result.c
+++ b/servers/slapd/result.c
@@ -1466,3 +1466,3 @@ error_return:;
- if ( op->o_tag == LDAP_REQ_SEARCH && rs->sr_type == REP_SEARCH ) {
+ if ( rs->sr_type == REP_SEARCH ) {
rs_flush_entry( op, rs, NULL );
It was a bad idea to trust sr_type when the test was written. The
SlapReply cleanup (ITS#6758) mostly fixed that, but is not complete.
OpenLDAP passes make alltests with both patches and USE_RS_ASSERT,
except an unrelated error which also fails in unpatched RE24.