From d6fde2d4c24d7fb5e040ccb00476f689a4472eff Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Wed, 26 Oct 2011 09:47:35 +0200 Subject: LDB/s4 - deny the "(dn=...)" syntax on search filters when in AD mode Achieve this by introducing a "disallowDNFilter" flag. Reviewed-by: Andrew Bartlett Signed-off-by: Andrew Bartlett --- lib/ldb/ldb_tdb/ldb_index.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/ldb/ldb_tdb/ldb_index.c') diff --git a/lib/ldb/ldb_tdb/ldb_index.c b/lib/ldb/ldb_tdb/ldb_index.c index 24cc93feb9..a3848eddb2 100644 --- a/lib/ldb/ldb_tdb/ldb_index.c +++ b/lib/ldb/ldb_tdb/ldb_index.c @@ -510,6 +510,15 @@ static int ltdb_index_dn_leaf(struct ldb_module *module, const struct ldb_message *index_list, struct dn_list *list) { + struct ltdb_private *ltdb = talloc_get_type(ldb_module_get_private(module), + struct ltdb_private); + if (ltdb->disallow_dn_filter && + (ldb_attr_cmp(tree->u.equality.attr, "dn") == 0)) { + /* in AD mode we do not support "(dn=...)" search filters */ + list->dn = NULL; + list->count = 0; + return LDB_SUCCESS; + } if (ldb_attr_dn(tree->u.equality.attr) == 0) { list->dn = talloc_array(list, struct ldb_val, 1); if (list->dn == NULL) { -- cgit