From: Pierangelo Masarati Date: Thu, 5 Feb 2009 19:54:51 +0000 (+0000) Subject: fix use of dangling pointers (ITS#5924) X-Git-Tag: ACLCHECK_0~880 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8227ed9f71321573df7624d17bb9f773ea24de62;p=openldap fix use of dangling pointers (ITS#5924) --- diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index 1a64b230ab..f651d9c139 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -3809,14 +3809,15 @@ config_rename_kids( CfEntryInfo *ce ) struct berval rdn, nrdn; for (ce2 = ce->ce_kids; ce2; ce2 = ce2->ce_sibs) { + struct berval newdn, newndn; dnRdn ( &ce2->ce_entry->e_name, &rdn ); dnRdn ( &ce2->ce_entry->e_nname, &nrdn ); + build_new_dn( &newdn, &ce->ce_entry->e_name, &rdn, NULL ); + build_new_dn( &newndn, &ce->ce_entry->e_nname, &nrdn, NULL ); free( ce2->ce_entry->e_name.bv_val ); free( ce2->ce_entry->e_nname.bv_val ); - build_new_dn( &ce2->ce_entry->e_name, &ce->ce_entry->e_name, - &rdn, NULL ); - build_new_dn( &ce2->ce_entry->e_nname, &ce->ce_entry->e_nname, - &nrdn, NULL ); + ce2->ce_entry->e_name = newdn; + ce2->ce_entry->e_nname = newndn; config_rename_kids( ce2 ); } }