]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/backover.c
RFC 4511 calls for unavailableCriticalExtension to returned when
[openldap] / servers / slapd / backover.c
index 3128840ce9f541c2f470526ae947ab698f1d2327..3ffd18828508066aff7add1f0da3246b26808a82 100644 (file)
@@ -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;