summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2014-12-19 15:46:30 +1300
committerGarming Sam <garming@samba.org>2014-12-22 00:18:09 +0100
commit1a012d591bca727b5cabacf6455d2009afb16bd7 (patch)
treed76031313f47e66a4c026756823b88ef011b677c
parentafe6e576b95fc3f08945b379ecb37f73ebceb16a (diff)
downloadsamba-1a012d591bca727b5cabacf6455d2009afb16bd7.tar.gz
samba-1a012d591bca727b5cabacf6455d2009afb16bd7.tar.xz
samba-1a012d591bca727b5cabacf6455d2009afb16bd7.zip
dsdb: Only parse SAMBA_LDAP_MATCH_RULE_TRANSITIVE_EVAL as a DN
This avoids trying to parse some other rule, like bitwise and, that may be applied to this attribute Signed-off-by: Garming Sam <garming@catalyst.net.nz> Pair-programmed-with: Garming Sam <garming@catalyst.net.nz> Signed-off-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--source4/dsdb/samdb/ldb_modules/extended_dn_in.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
index 41270361e7..b7ca636598 100644
--- a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
+++ b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c
@@ -35,6 +35,7 @@
#include <ldb_module.h>
#include "dsdb/samdb/samdb.h"
#include "dsdb/samdb/ldb_modules/util.h"
+#include "lib/ldb-samba/ldb_matching_rules.h"
/*
TODO: if relax is not set then we need to reject the fancy RMD_* and
@@ -406,7 +407,8 @@ static int extended_dn_filter_callback(struct ldb_parse_tree *tree, void *privat
if (tree->operation == LDB_OP_EQUALITY) {
dn = ldb_dn_from_ldb_val(filter_ctx, ldb_module_get_ctx(filter_ctx->module), &tree->u.equality.value);
- } else if (tree->operation == LDB_OP_EXTENDED) {
+ } else if (tree->operation == LDB_OP_EXTENDED
+ && (strcmp(tree->u.extended.rule_id, SAMBA_LDAP_MATCH_RULE_TRANSITIVE_EVAL) == 0)) {
dn = ldb_dn_from_ldb_val(filter_ctx, ldb_module_get_ctx(filter_ctx->module), &tree->u.extended.value);
}
if (dn == NULL) {