make sure rwm_response returns SLAP_CB_CONTINUE (ITS#6792, as indicated by Hallvard)

This commit is contained in:
Pierangelo Masarati 2011-01-17 13:15:28 +00:00
parent b9609cedf5
commit 3c82ea09c7

View file

@ -1154,7 +1154,7 @@ rwm_extended( Operation *op, SlapReply *rs )
return SLAP_CB_CONTINUE;
}
static int
static void
rwm_matched( Operation *op, SlapReply *rs )
{
slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
@ -1166,7 +1166,7 @@ rwm_matched( Operation *op, SlapReply *rs )
int rc;
if ( rs->sr_matched == NULL ) {
return SLAP_CB_CONTINUE;
return;
}
dc.rwmap = rwmap;
@ -1179,10 +1179,8 @@ rwm_matched( Operation *op, SlapReply *rs )
if ( rc != LDAP_SUCCESS ) {
rs->sr_err = rc;
rs->sr_text = "Rewrite error";
return 1;
}
if ( mdn.bv_val != dn.bv_val ) {
} else if ( mdn.bv_val != dn.bv_val ) {
if ( rs->sr_flags & REP_MATCHED_MUSTBEFREED ) {
ch_free( (void *)rs->sr_matched );
@ -1191,8 +1189,6 @@ rwm_matched( Operation *op, SlapReply *rs )
}
rs->sr_matched = mdn.bv_val;
}
return SLAP_CB_CONTINUE;
}
static int
@ -1761,20 +1757,20 @@ rwm_response( Operation *op, SlapReply *rs )
dc.rs = NULL;
dc.ctx = "referralDN";
rc = rwm_referral_result_rewrite( &dc, rs->sr_ref );
/* FIXME: impossible, so far */
if ( rc != LDAP_SUCCESS ) {
rc = 1;
rs->sr_err = rc;
break;
}
}
rc = rwm_matched( op, rs );
break;
/* fallthru */
default:
rc = SLAP_CB_CONTINUE;
rwm_matched( op, rs );
break;
}
return rc;
return SLAP_CB_CONTINUE;
}
static int