mirror of
https://github.com/samba-team/samba.git
synced 2025-12-16 00:23:52 +03:00
r25934: Handle a LDB_ERR_NO_SUCH_OBJECT return value when looking for the
modules. This will be useful when we start enforcing validity in base DNs. Andrew Bartlett
This commit is contained in:
committed by
Stefan Metzmacher
parent
af40b1cd88
commit
aa8348a27a
@@ -323,24 +323,27 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[])
|
||||
|
||||
ret = ldb_search(ldb, mods_dn, LDB_SCOPE_BASE, "", attrs, &res);
|
||||
|
||||
if (ret != LDB_SUCCESS) {
|
||||
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
|
||||
ldb_debug(ldb, LDB_DEBUG_TRACE, "no modules required by the db");
|
||||
} else if (ret != LDB_SUCCESS) {
|
||||
ldb_debug(ldb, LDB_DEBUG_FATAL, "ldb error (%s) occurred searching for modules, bailing out\n", ldb_errstring(ldb));
|
||||
talloc_free(mem_ctx);
|
||||
return -1;
|
||||
}
|
||||
talloc_steal(mods_dn, res);
|
||||
if (res->count == 0 || res->msgs[0]->num_elements == 0) {
|
||||
ldb_debug(ldb, LDB_DEBUG_TRACE, "no modules required by the db");
|
||||
} else {
|
||||
if (res->count > 1) {
|
||||
ldb_debug(ldb, LDB_DEBUG_FATAL, "Too many records found (%d), bailing out\n", res->count);
|
||||
talloc_free(mem_ctx);
|
||||
return -1;
|
||||
talloc_steal(mods_dn, res);
|
||||
if (res->count == 0 || res->msgs[0]->num_elements == 0) {
|
||||
ldb_debug(ldb, LDB_DEBUG_TRACE, "no modules required by the db");
|
||||
} else {
|
||||
if (res->count > 1) {
|
||||
ldb_debug(ldb, LDB_DEBUG_FATAL, "Too many records found (%d), bailing out\n", res->count);
|
||||
talloc_free(mem_ctx);
|
||||
return -1;
|
||||
}
|
||||
|
||||
modules = ldb_modules_list_from_string(ldb, mem_ctx,
|
||||
(const char *)res->msgs[0]->elements[0].values[0].data);
|
||||
|
||||
}
|
||||
|
||||
modules = ldb_modules_list_from_string(ldb, mem_ctx,
|
||||
(const char *)res->msgs[0]->elements[0].values[0].data);
|
||||
|
||||
}
|
||||
|
||||
talloc_free(mods_dn);
|
||||
|
||||
Reference in New Issue
Block a user