X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fbackover.c;h=3ffd18828508066aff7add1f0da3246b26808a82;hb=672f8ef3f39ed6008c1ff267847e32de59c5eeaf;hp=3128840ce9f541c2f470526ae947ab698f1d2327;hpb=eb9a3c18767fe87d2a1f7fbbc6b3d676779eb5b7;p=openldap diff --git a/servers/slapd/backover.c b/servers/slapd/backover.c index 3128840ce9..3ffd188285 100644 --- a/servers/slapd/backover.c +++ b/servers/slapd/backover.c @@ -210,10 +210,13 @@ over_db_destroy( rc = over_db_func( be, db_destroy ); - for (next = on->on_next; on; on=next) { - next = on->on_next; - free( on ); + if ( on ) { + for (next = on->on_next; on; on=next) { + next = on->on_next; + free( on ); + } } + free( oi ); return rc; } @@ -1054,7 +1057,11 @@ overlay_config( BackendDB *be, const char *ov ) be->bd_info = (BackendInfo *)on2; rc = on2->on_bi.bi_db_init( be ); be->bd_info = (BackendInfo *)oi; - if ( rc ) return rc; + if ( rc ) { + oi->oi_list = on2->on_next; + ch_free( on2 ); + return rc; + } } return 0;