r18245: Ensure we don't keep the rootdse record around (steal it onto the
authorAndrew Bartlett <abartlet@samba.org>
Fri, 8 Sep 2006 04:04:30 +0000 (04:04 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:17:54 +0000 (14:17 -0500)
correct memory context).

Andrew Bartlett
(This used to be commit b4f234e507fa94e9600c362fb6edb704d299cfce)

source4/lib/ldb/common/ldb.c

index 04ac3e7d812136115f3bf79937155f01973d7508..5aa243ac7ad839ea9ffc77d9f1930010cbd08f73 100644 (file)
@@ -162,12 +162,14 @@ static const struct ldb_dn *ldb_set_default_basedn(struct ldb_context *ldb)
        tmp_ctx = talloc_new(ldb);
        ret = ldb_search(ldb, ldb_dn_new(tmp_ctx), LDB_SCOPE_BASE, 
                         "(objectClass=*)", attrs, &res);
-       if (ret == LDB_SUCCESS && res->count == 1) {
-               basedn = ldb_msg_find_attr_as_dn(ldb, res->msgs[0], "defaultNamingContext");
+       if (ret == LDB_SUCCESS) {
+               talloc_steal(tmp_ctx, res);
+               if (res->count == 1) {
+                       basedn = ldb_msg_find_attr_as_dn(ldb, res->msgs[0], "defaultNamingContext");
+                       ldb_set_opaque(ldb, "default_baseDN", basedn);
+               }
        }
 
-       ldb_set_opaque(ldb, "default_baseDN", basedn);
-
        talloc_free(tmp_ctx);
        return basedn;
 }