File fix-modrdn-with-empty-olddn-ITS-6768-dif of Package openldap2
From 80a3b25154a6d99ad154acd423ebd917abb375d7 Mon Sep 17 00:00:00 2001
From: quanah <quanah>
Date: Tue, 4 Jan 2011 19:44:43 +0000
Subject: fix modrdn with empty olddn (ITS#6768)
slapd crashes when processing a modrdn operation with an empty olddn
parameter and "remove old DN" enabled. (bnc#674985)
diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c
index e143a7b..06ea25c 100644
--- a/servers/slapd/modrdn.c
+++ b/servers/slapd/modrdn.c
@@ -392,7 +392,9 @@ slap_modrdn2mods(
LDAPRDN new_rdn = NULL;
assert( !BER_BVISEMPTY( &op->oq_modrdn.rs_newrdn ) );
- assert( !op->orr_deleteoldrdn || !BER_BVISEMPTY( &op->o_req_dn ) );
+
+ /* if requestDN is empty, silently reset deleteOldRDN */
+ if ( BER_BVISEMPTY( &op->o_req_dn ) ) op->orr_deleteoldrdn = 0;
if ( ldap_bv2rdn_x( &op->oq_modrdn.rs_newrdn, &new_rdn,
(char **)&rs->sr_text, LDAP_DN_FORMAT_LDAP, op->o_tmpmemctx ) ) {
--
1.7.3.4