diff options
author | Adrian Cochrane <adrianc@catalyst.net.nz> | 2016-01-12 13:11:03 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2016-01-18 04:42:21 +0100 |
commit | 10e32377a41d66566d8860cd5f02243feff61ce0 (patch) | |
tree | 0dfc427b0be9bf79d0b227ce9429f70dc8c101d2 | |
parent | 1d05f3bae722fe82db8160b76ec6e49771d687cc (diff) | |
download | samba-10e32377a41d66566d8860cd5f02243feff61ce0.tar.gz |
ldb-samba: Correct error reporting to match Windows
In some cases instead of replying with an error Windows instead returns
0 results.
Signed-off-by: Adrian Cochrane <adrianc@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
-rw-r--r-- | lib/ldb-samba/ldb_matching_rules.c | 5 | ||||
-rw-r--r-- | lib/ldb/common/ldb_match.c | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/ldb-samba/ldb_matching_rules.c b/lib/ldb-samba/ldb_matching_rules.c index cc69e442483..1692a73f534 100644 --- a/lib/ldb-samba/ldb_matching_rules.c +++ b/lib/ldb-samba/ldb_matching_rules.c @@ -228,7 +228,7 @@ static int ldb_eval_transitive_filter(TALLOC_CTX *mem_ctx, dn_to_match = dsdb_dn_parse(mem_ctx, ldb, value_to_match, dn_oid); if (dn_to_match == NULL) { *matched = false; - return LDB_ERR_INVALID_DN_SYNTAX; + return LDB_SUCCESS; } return ldb_eval_transitive_filter_helper(mem_ctx, ldb, attr, @@ -292,8 +292,9 @@ static int ldb_comparator_trans(struct ldb_context *ldb, * mailing list. */ if (schema_attr->linkID == 0) { + *matched = false; talloc_free(tmp_ctx); - return LDB_ERR_INAPPROPRIATE_MATCHING; + return LDB_SUCCESS; } /* Duplicate original msg dn as the msg must not be modified */ diff --git a/lib/ldb/common/ldb_match.c b/lib/ldb/common/ldb_match.c index 182c6ce5720..c4f5580c400 100644 --- a/lib/ldb/common/ldb_match.c +++ b/lib/ldb/common/ldb_match.c @@ -503,9 +503,10 @@ static int ldb_match_extended(struct ldb_context *ldb, rule = ldb_find_extended_match_rule(ldb, tree->u.extended.rule_id); if (rule == NULL) { + *matched = false; ldb_debug(ldb, LDB_DEBUG_ERROR, "ldb: unknown extended rule_id %s", tree->u.extended.rule_id); - return LDB_ERR_INAPPROPRIATE_MATCHING; + return LDB_SUCCESS; } return rule->callback(ldb, rule->oid, msg, |