diff options
Diffstat (limited to 'source4/lib/ldb')
-rw-r--r-- | source4/lib/ldb/common/ldb.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c index 04ac3e7d81..5aa243ac7a 100644 --- a/source4/lib/ldb/common/ldb.c +++ b/source4/lib/ldb/common/ldb.c @@ -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; } |