Commit 1c31e03b authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#5340

parent 5b29b176
...@@ -12,6 +12,7 @@ OpenLDAP 2.4.9 Engineering ...@@ -12,6 +12,7 @@ OpenLDAP 2.4.9 Engineering
Fixed slapd pointer dereference (ITS#5388) Fixed slapd pointer dereference (ITS#5388)
Fixed slapd null argument dereference (ITS#5435) Fixed slapd null argument dereference (ITS#5435)
Fixed slapd sets attribute description parsing (ITS#5402) Fixed slapd sets attribute description parsing (ITS#5402)
Fixed slapd REP_ENTRY flags (ITS#5340)
Fixed slapd syncrepl hang on back-config (ITS#5407) Fixed slapd syncrepl hang on back-config (ITS#5407)
Fixed slapd syncrepl compare_csns crash (ITS#5413) Fixed slapd syncrepl compare_csns crash (ITS#5413)
Fixed slapd syncrepl contextCSN update clash (ITS#5426) Fixed slapd syncrepl contextCSN update clash (ITS#5426)
......
...@@ -522,15 +522,21 @@ clean2:; ...@@ -522,15 +522,21 @@ clean2:;
(void)slap_cleanup_play( op, rs ); (void)slap_cleanup_play( op, rs );
} }
if ( rs->sr_matched && rs->sr_flags & REP_MATCHED_MUSTBEFREED ) { if ( rs->sr_flags & REP_MATCHED_MUSTBEFREED ) {
rs->sr_flags ^= REP_MATCHED_MUSTBEFREED; /* paranoia */
if ( rs->sr_matched ) {
free( (char *)rs->sr_matched ); free( (char *)rs->sr_matched );
rs->sr_matched = NULL; rs->sr_matched = NULL;
} }
}
if ( rs->sr_ref && rs->sr_flags & REP_REF_MUSTBEFREED ) { if ( rs->sr_flags & REP_REF_MUSTBEFREED ) {
rs->sr_flags ^= REP_REF_MUSTBEFREED; /* paranoia */
if ( rs->sr_ref ) {
ber_bvarray_free( rs->sr_ref ); ber_bvarray_free( rs->sr_ref );
rs->sr_ref = NULL; rs->sr_ref = NULL;
} }
}
return rc; return rc;
} }
...@@ -625,6 +631,14 @@ slap_send_ldap_result( Operation *op, SlapReply *rs ) ...@@ -625,6 +631,14 @@ slap_send_ldap_result( Operation *op, SlapReply *rs )
rs->sr_msgid = (rs->sr_tag != LBER_SEQUENCE) ? op->o_msgid : 0; rs->sr_msgid = (rs->sr_tag != LBER_SEQUENCE) ? op->o_msgid : 0;
abandon: abandon:
if ( rs->sr_flags & REP_REF_MUSTBEFREED ) {
if ( rs->sr_ref == NULL ) {
rs->sr_flags ^= REP_REF_MUSTBEFREED;
ber_bvarray_free( oref );
}
oref = NULL; /* send_ldap_response() will free rs->sr_ref if != NULL */
}
if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) { if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) {
if ( op->o_tag == LDAP_REQ_SEARCH ) { if ( op->o_tag == LDAP_REQ_SEARCH ) {
char nbuf[64]; char nbuf[64];
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment