diff options
Diffstat (limited to 'source4/lib/ldb/ldb_tdb/ldb_search.c')
-rw-r--r-- | source4/lib/ldb/ldb_tdb/ldb_search.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_search.c b/source4/lib/ldb/ldb_tdb/ldb_search.c index ca0ae06354..fc864ac2ea 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_search.c +++ b/source4/lib/ldb/ldb_tdb/ldb_search.c @@ -34,6 +34,7 @@ #include "includes.h" #include "ldb/include/ldb.h" +#include "ldb/include/ldb_errors.h" #include "ldb/include/ldb_private.h" #include "ldb/ldb_tdb/ldb_tdb.h" @@ -249,7 +250,6 @@ static int ltdb_search_dn(struct ldb_module *module, const struct ldb_dn *dn, const char * const attrs[], struct ldb_message ***res) { struct ldb_context *ldb = module->ldb; - struct ltdb_private *ltdb = module->private_data; int ret; struct ldb_message *msg, *msg2; @@ -259,8 +259,6 @@ static int ltdb_search_dn(struct ldb_module *module, const struct ldb_dn *dn, return -1; } - ltdb->last_err_string = NULL; - if (ltdb_cache_load(module) != 0) { ltdb_unlock_read(module); return -1; @@ -462,7 +460,6 @@ int ltdb_search_bytree(struct ldb_module *module, const struct ldb_dn *base, enum ldb_scope scope, struct ldb_parse_tree *tree, const char * const attrs[], struct ldb_message ***res) { - struct ltdb_private *ltdb = module->private_data; int ret; if ((base == NULL || base->comp_num == 0) && @@ -476,7 +473,7 @@ int ltdb_search_bytree(struct ldb_module *module, const struct ldb_dn *base, struct ldb_dn *dn; dn = ldb_dn_explode(module->ldb, tree->u.equality.value.data); if (dn == NULL) { - return -1; + return LDB_ERR_INVALID_DN_SYNTAX; } ret = ltdb_search_dn(module, dn, attrs, res); talloc_free(dn); @@ -487,8 +484,6 @@ int ltdb_search_bytree(struct ldb_module *module, const struct ldb_dn *base, return -1; } - ltdb->last_err_string = NULL; - if (ltdb_cache_load(module) != 0) { ltdb_unlock_read(module); return -1; @@ -530,7 +525,8 @@ int ltdb_search(struct ldb_module *module, const struct ldb_dn *base, tree = ldb_parse_tree(ltdb, expression); if (tree == NULL) { - ltdb->last_err_string = "expression parse failed"; + char *err_string = talloc_strdup(module, "expression parse failed"); + if (err_string) ldb_set_errstring(module, err_string); return -1; } |