diff options
author | Stefan Metzmacher <metze@samba.org> | 2006-02-15 15:13:05 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:51:56 -0500 |
commit | 37bd0b655f2483b2a04fa4a53d55abcc7c9705bb (patch) | |
tree | fdc750268ff07dace7e0887986f6e33029595f45 | |
parent | f2e88ab7cf2010ffeae2f16762f88285d1a77fd8 (diff) | |
download | samba-37bd0b655f2483b2a04fa4a53d55abcc7c9705bb.tar.gz samba-37bd0b655f2483b2a04fa4a53d55abcc7c9705bb.tar.bz2 samba-37bd0b655f2483b2a04fa4a53d55abcc7c9705bb.zip |
r13507: the 'data' element of LDAP controls is optional.
(prepare the next commit)
metze
(This used to be commit a1bbf7f2982185cb6cd544b65b4709ab33a850c5)
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/extended_dn.c | 3 | ||||
-rw-r--r-- | source4/lib/ldb/modules/asq.c | 3 | ||||
-rw-r--r-- | source4/lib/ldb/modules/paged_results.c | 3 | ||||
-rw-r--r-- | source4/lib/ldb/modules/sort.c | 3 |
4 files changed, 12 insertions, 0 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn.c b/source4/dsdb/samdb/ldb_modules/extended_dn.c index 839c190a8e..9795758dc2 100644 --- a/source4/dsdb/samdb/ldb_modules/extended_dn.c +++ b/source4/dsdb/samdb/ldb_modules/extended_dn.c @@ -185,6 +185,9 @@ static int extended_search(struct ldb_module *module, struct ldb_request *req) } extended_ctrl = talloc_get_type(control->data, struct ldb_extended_dn_control); + if (!extended_ctrl) { + return LDB_ERR_PROTOCOL_ERROR; + } /* save it locally and remove it from the list */ if (!save_controls(control, req, &saved_controls)) { diff --git a/source4/lib/ldb/modules/asq.c b/source4/lib/ldb/modules/asq.c index 905bab480a..2975f4d832 100644 --- a/source4/lib/ldb/modules/asq.c +++ b/source4/lib/ldb/modules/asq.c @@ -105,6 +105,9 @@ static int asq_search(struct ldb_module *module, struct ldb_request *req) } asq_ctrl = talloc_get_type(control->data, struct ldb_asq_control); + if (!asq_ctrl) { + return LDB_ERR_PROTOCOL_ERROR; + } /* get the object to retrieve the DNs to search */ base_req = talloc_zero(req, struct ldb_request); diff --git a/source4/lib/ldb/modules/paged_results.c b/source4/lib/ldb/modules/paged_results.c index 5e88052990..c4aad4500e 100644 --- a/source4/lib/ldb/modules/paged_results.c +++ b/source4/lib/ldb/modules/paged_results.c @@ -117,6 +117,9 @@ static int paged_search(struct ldb_module *module, struct ldb_request *req) } paged_ctrl = talloc_get_type(control->data, struct ldb_paged_control); + if (!paged_ctrl) { + return LDB_ERR_PROTOCOL_ERROR; + } /* check if it is a continuation search the store */ if (paged_ctrl->cookie_len != 0) { diff --git a/source4/lib/ldb/modules/sort.c b/source4/lib/ldb/modules/sort.c index 9a0d449cf7..ac9f1081de 100644 --- a/source4/lib/ldb/modules/sort.c +++ b/source4/lib/ldb/modules/sort.c @@ -126,6 +126,9 @@ static int server_sort_search(struct ldb_module *module, struct ldb_request *req } sort_ctrls = talloc_get_type(control->data, struct ldb_server_sort_control *); + if (!sort_ctrls) { + return LDB_ERR_PROTOCOL_ERROR; + } /* FIXME: we do not support more than one attribute for sorting right now */ /* FIXME: we need to check if the attribute type exist or return an error */ |