summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/dsdb/samdb/ldb_modules/rootdse.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/rootdse.c b/source4/dsdb/samdb/ldb_modules/rootdse.c
index c174ac65a1..371031be26 100644
--- a/source4/dsdb/samdb/ldb_modules/rootdse.c
+++ b/source4/dsdb/samdb/ldb_modules/rootdse.c
@@ -151,6 +151,15 @@ static int rootdse_callback(struct ldb_context *ldb, void *context, struct ldb_r
ac = talloc_get_type(context, struct rootdse_context);
if (ares->type == LDB_REPLY_ENTRY) {
+ /*
+ * if the client explicit asks for the 'netlogon' attribute
+ * the reply_entry needs to be skipped
+ */
+ if (ac->attrs && ldb_attr_in_list(ac->attrs, "netlogon")) {
+ talloc_free(ares);
+ return LDB_SUCCESS;
+ }
+
/* for each record returned post-process to add any dynamic
attributes that have been asked for */
if (rootdse_add_dynamic(ac->module, ares->message, ac->attrs) != LDB_SUCCESS) {