Destroy Backend/Overlay after an error happend during one of the

config_parse_add() calls, as backend_db_init() might have been called.
This commit is contained in:
Ralf Haferkamp 2005-07-05 11:17:25 +00:00
parent 3232686cc1
commit 7027609818

View File

@ -3173,10 +3173,6 @@ ok:
Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n", Debug(LDAP_DEBUG_ANY, "%s: %s (%s)!\n",
ca->log, ca->msg, ca->argv[1] ); ca->log, ca->msg, ca->argv[1] );
rc = LDAP_OTHER; rc = LDAP_OTHER;
if ( colst[0]->co_type == Cft_Database )
backend_destroy_one( ca->be );
else
overlay_destroy_one( ca->be, (slap_overinst *)ca->bi );
goto leave; goto leave;
} }
} }
@ -3202,6 +3198,14 @@ ok:
} }
leave: leave:
if ( rc ) {
if ( (colst[0]->co_type == Cft_Database) && ca->be ) {
backend_destroy_one( ca->be );
} else if ( (colst[0]->co_type == Cft_Database) && ca->bi ) {
overlay_destroy_one( ca->be, (slap_overinst *)ca->bi );
}
}
ch_free( ca->argv ); ch_free( ca->argv );
if ( colst ) ch_free( colst ); if ( colst ) ch_free( colst );
return rc; return rc;