From: Pierangelo Masarati Date: Mon, 19 Mar 2007 15:44:58 +0000 (+0000) Subject: handle r_dn == r_ndn X-Git-Tag: OPENLDAP_REL_ENG_2_4_MP~608 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=98fe6a81a076b2d7a9daa43107aefc4864022a5c;p=openldap handle r_dn == r_ndn --- diff --git a/servers/slapd/overlays/rwm.c b/servers/slapd/overlays/rwm.c index 4e87d36dd2..8bdf9355bb 100644 --- a/servers/slapd/overlays/rwm.c +++ b/servers/slapd/overlays/rwm.c @@ -55,8 +55,17 @@ rwm_op_cleanup( Operation *op, SlapReply *rs ) op->o_req_dn = ros->ro_dn; op->o_req_ndn = ros->ro_ndn; - if ( !BER_BVISEMPTY( &ros->r_dn )) ch_free( ros->r_dn.bv_val ); - if ( !BER_BVISEMPTY( &ros->r_ndn )) ch_free( ros->r_ndn.bv_val ); + if ( !BER_BVISNULL( &ros->r_dn ) + && ros->r_dn.bv_val != ros->r_ndn.bv_val ) + { + ch_free( ros->r_dn.bv_val ); + BER_BVZERO( &ros->r_dn ); + } + + if ( !BER_BVISNULL( &ros->r_ndn ) ) { + ch_free( ros->r_ndn.bv_val ); + BER_BVZERO( &ros->r_ndn ); + } switch( ros->r_tag ) { case LDAP_REQ_COMPARE: