From 98fe6a81a076b2d7a9daa43107aefc4864022a5c Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 19 Mar 2007 15:44:58 +0000 Subject: [PATCH] handle r_dn == r_ndn --- servers/slapd/overlays/rwm.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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: -- 2.39.5