ldb-samba: Correct error reporting to match Windows
authorAdrian Cochrane <adrianc@catalyst.net.nz>
Tue, 12 Jan 2016 00:11:03 +0000 (13:11 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 18 Jan 2016 03:42:21 +0000 (04:42 +0100)
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>
lib/ldb-samba/ldb_matching_rules.c
lib/ldb/common/ldb_match.c

index cc69e442483661a67e8ea3e99abab585644c1d71..1692a73f5348e771df24329dcd3658a525c80279 100644 (file)
@@ -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 */
index 182c6ce5720fe54f7c5a8297cb05169f57be0243..c4f5580c4003435330420fdbc93d8308202bbf40 100644 (file)
@@ -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,