diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-07-11 23:08:46 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2010-09-02 10:40:34 +1000 |
commit | 68c61dfa3fa925c63247bef83f10dfa2efa458e6 (patch) | |
tree | fc167fec9989ad3ca24f757067294edcaebb3264 /source4/dsdb/samdb | |
parent | 379d073444f7acafb6e5761dd667073ad7371771 (diff) | |
download | samba-68c61dfa3fa925c63247bef83f10dfa2efa458e6.tar.gz samba-68c61dfa3fa925c63247bef83f10dfa2efa458e6.tar.bz2 samba-68c61dfa3fa925c63247bef83f10dfa2efa458e6.zip |
s4:dsdb Make the dereference control critical if input is critical
This helps us ensure that the backend knows about and respects the
dereference control if our caller has asked that the extended DN control
be considered critical.
Andrew Bartlett
Diffstat (limited to 'source4/dsdb/samdb')
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/extended_dn_out.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_out.c b/source4/dsdb/samdb/ldb_modules/extended_dn_out.c index ba4054a4c3..92ce328eb2 100644 --- a/source4/dsdb/samdb/ldb_modules/extended_dn_out.c +++ b/source4/dsdb/samdb/ldb_modules/extended_dn_out.c @@ -549,6 +549,7 @@ static int extended_dn_out_search(struct ldb_module *module, struct ldb_request const char * const *const_attrs; struct ldb_context *ldb = ldb_module_get_ctx(module); int ret; + bool critical; struct extended_dn_out_private *p = talloc_get_type(ldb_module_get_private(module), struct extended_dn_out_private); @@ -646,6 +647,7 @@ static int extended_dn_out_search(struct ldb_module *module, struct ldb_request /* mark extended DN and storage format controls as done */ if (control) { + critical = control->critical; control->critical = 0; } @@ -659,7 +661,7 @@ static int extended_dn_out_search(struct ldb_module *module, struct ldb_request if (control && p && p->dereference && p->dereference_control) { ret = ldb_request_add_control(down_req, DSDB_OPENLDAP_DEREFERENCE_CONTROL, - false, p->dereference_control); + critical, p->dereference_control); if (ret != LDB_SUCCESS) { return ret; } |