]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/init.c
check consistency of referrals and result code (ITS#4861)
[openldap] / servers / slapd / back-monitor / init.c
index b37a21b43f211d6d311d8667f8e7e7201383baf7..978d1301c8809a38fe35f8398196d4c73fad8e22 100644 (file)
@@ -723,6 +723,12 @@ monitor_search2ndn(
 
        op->o_tag = LDAP_REQ_SEARCH;
 
+       /* use global malloc for now */
+       if ( op->o_tmpmemctx ) {
+               op->o_tmpmemctx = NULL;
+       }
+       op->o_tmpmfuncs = &ch_mfuncs;
+
        op->o_bd = be_monitor;
        if ( nbase == NULL || BER_BVISNULL( nbase ) ) {
                ber_dupbv_x( &op->o_req_dn, &op->o_bd->be_suffix[ 0 ],
@@ -769,12 +775,12 @@ cleanup:;
        if ( !BER_BVISNULL( &op->ors_filterstr ) ) {
                op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
        }
-       if ( !BER_BVISNULL( &op->o_req_ndn ) ) {
-               op->o_tmpfree( op->o_req_ndn.bv_val, op->o_tmpmemctx );
-       }
        if ( !BER_BVISNULL( &op->o_req_dn ) ) {
                op->o_tmpfree( op->o_req_dn.bv_val, op->o_tmpmemctx );
        }
+       if ( !BER_BVISNULL( &op->o_req_ndn ) ) {
+               op->o_tmpfree( op->o_req_ndn.bv_val, op->o_tmpmemctx );
+       }
 
        if ( rc != 0 ) {
                return rc;