From 6654fffb3e854a6146f5f4ed40c8844afdff96f1 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 24 Dec 2001 20:27:00 +0000 Subject: [PATCH] Fix SEGV when no newSuperior is specified --- servers/slapd/modrdn.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c index 62a6078d9a..4bd0c6d170 100644 --- a/servers/slapd/modrdn.c +++ b/servers/slapd/modrdn.c @@ -382,7 +382,7 @@ do_modrdn( #endif { if ( (*be->be_modrdn)( be, conn, op, pdn->bv_val, ndn->bv_val, - pnewrdn->bv_val, deloldrdn, pnewSuperior->bv_val ) == 0 + pnewrdn->bv_val, deloldrdn, pnewSuperior ? pnewSuperior->bv_val : NULL ) == 0 #ifdef SLAPD_MULTIMASTER && ( be->be_update_ndn == NULL || !repl_user ) #endif @@ -390,7 +390,7 @@ do_modrdn( struct replog_moddn moddn; moddn.newrdn = pnewrdn->bv_val; moddn.deloldrdn = deloldrdn; - moddn.newsup = pnewSuperior->bv_val; + moddn.newsup = pnewSuperior ? pnewSuperior->bv_val : NULL; replog( be, op, pdn->bv_val, ndn->bv_val, &moddn ); } @@ -423,8 +423,8 @@ cleanup: if( nnewrdn != NULL ) ber_bvfree( nnewrdn ); free( newSuperior.bv_val ); - if ( pnewSuperior != NULL ) free( pnewSuperior ); - if ( nnewSuperior != NULL ) free( nnewSuperior ); + if ( pnewSuperior != NULL ) ber_bvfree( pnewSuperior ); + if ( nnewSuperior != NULL ) ber_bvfree( nnewSuperior ); return rc; } -- 2.39.5