diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-10-19 11:20:14 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-10-19 11:22:35 +1100 |
commit | d16fe72585445e7fd3724a7413ca7e03ee633fc9 (patch) | |
tree | 54cc5dacefa7ce1ae1c1c416ed68616d195b88b7 /source4/lib/ldb/common/ldb.c | |
parent | 5f6c004dec2140755ddfe5f801775e19a03a7ec8 (diff) | |
download | samba-d16fe72585445e7fd3724a7413ca7e03ee633fc9.tar.gz samba-d16fe72585445e7fd3724a7413ca7e03ee633fc9.tar.bz2 samba-d16fe72585445e7fd3724a7413ca7e03ee633fc9.zip |
s4-ldb: cope with NULL oid in controls
the ldap server will mark a control with a NULL oid in order to remove
it. This prevents a O(n^2) cost in control handling.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/lib/ldb/common/ldb.c')
-rw-r--r-- | source4/lib/ldb/common/ldb.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c index 33d6c48cbe..e2a3e603ce 100644 --- a/source4/lib/ldb/common/ldb.c +++ b/source4/lib/ldb/common/ldb.c @@ -756,10 +756,12 @@ static void ldb_trace_request(struct ldb_context *ldb, struct ldb_request *req) ldb_debug_add(ldb, " control: <NONE>\n"); } else { for (i=0; req->controls && req->controls[i]; i++) { - ldb_debug_add(ldb, " control: %s crit:%u data:%s\n", - req->controls[i]->oid, - req->controls[i]->critical, - req->controls[i]->data?"yes":"no"); + if (req->controls[i]->oid) { + ldb_debug_add(ldb, " control: %s crit:%u data:%s\n", + req->controls[i]->oid, + req->controls[i]->critical, + req->controls[i]->data?"yes":"no"); + } } } |