summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/kludge_acl.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2006-02-05 18:18:29 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:51:48 -0500
commit096c2dc10362150aed84f2251fa8ff26c3a535bb (patch)
treec74ca8261b39980dfb366987a5354abe9e3f7455 /source4/dsdb/samdb/ldb_modules/kludge_acl.c
parentad5e8bbe9d5c2250092bb3a83098c3af46304a82 (diff)
downloadsamba-096c2dc10362150aed84f2251fa8ff26c3a535bb.tar.gz
samba-096c2dc10362150aed84f2251fa8ff26c3a535bb.tar.bz2
samba-096c2dc10362150aed84f2251fa8ff26c3a535bb.zip
r13353: Fix a crash bug in rootdse when we do not pass in credentials
a plain ldbsearch would just crash Fix kludge_acl, not passing on the second stage registration phase to other modules Simo (This used to be commit bec99c5cb65d8c32fd4f636ed2f5383fb1b39830)
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/kludge_acl.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/kludge_acl.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/kludge_acl.c b/source4/dsdb/samdb/ldb_modules/kludge_acl.c
index 0d0a266119..83c7d14da4 100644
--- a/source4/dsdb/samdb/ldb_modules/kludge_acl.c
+++ b/source4/dsdb/samdb/ldb_modules/kludge_acl.c
@@ -196,14 +196,11 @@ static int kludge_acl_init_2(struct ldb_module *module)
NULL, attrs,
&res);
if (ret != LDB_SUCCESS) {
- talloc_free(mem_ctx);
- return ret;
+ goto done;
}
talloc_steal(mem_ctx, res);
if (res->count == 0) {
- talloc_free(mem_ctx);
- data->password_attrs = NULL;
- return LDB_SUCCESS;
+ goto done;
}
if (res->count > 1) {
@@ -215,8 +212,7 @@ static int kludge_acl_init_2(struct ldb_module *module)
password_attributes = ldb_msg_find_element(msg, "passwordAttribute");
if (!password_attributes) {
- talloc_free(mem_ctx);
- return LDB_SUCCESS;
+ goto done;
}
data->password_attrs = talloc_array(data, const char *, password_attributes->num_values + 1);
if (!data->password_attrs) {
@@ -228,8 +224,10 @@ static int kludge_acl_init_2(struct ldb_module *module)
talloc_steal(data->password_attrs, password_attributes->values[i].data);
}
data->password_attrs[i] = NULL;
+
+done:
talloc_free(mem_ctx);
- return LDB_SUCCESS;
+ return ldb_next_second_stage_init(module);
}
static const struct ldb_module_ops kludge_acl_ops = {