diff options
author | Matthias Dieter Wallnöfer <mdw@samba.org> | 2012-05-04 11:42:14 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-08-22 01:31:55 +0200 |
commit | c8bfb8eb094e5bb80de8f5fa991910954d47b351 (patch) | |
tree | 20c078ec7a2a0b7b87513eda17d6308ec72e2a5b | |
parent | 536c082505fea55eb12056791e170c8cf80b36cb (diff) | |
download | samba-c8bfb8eb094e5bb80de8f5fa991910954d47b351.tar.gz samba-c8bfb8eb094e5bb80de8f5fa991910954d47b351.tar.bz2 samba-c8bfb8eb094e5bb80de8f5fa991910954d47b351.zip |
s4:dsdb - always fail if a search filter could not be parsed
A NULL string/expression returns the generic "(objectClass=*)" filter
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/proxy.c | 3 | ||||
-rw-r--r-- | source4/libcli/ldap/ldap_ildap.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/proxy.c b/source4/dsdb/samdb/ldb_modules/proxy.c index 5f6e56f9d4..c3f12bae3a 100644 --- a/source4/dsdb/samdb/ldb_modules/proxy.c +++ b/source4/dsdb/samdb/ldb_modules/proxy.c @@ -339,6 +339,9 @@ static int proxy_search_bytree(struct ldb_module *module, struct ldb_request *re #endif newtree = proxy_convert_tree(ac, proxy, req->op.search.tree); + if (newtree == NULL) { + goto failed; + } /* convert the basedn of this search */ base = ldb_dn_copy(ac, req->op.search.base); diff --git a/source4/libcli/ldap/ldap_ildap.c b/source4/libcli/ldap/ldap_ildap.c index 10fe8e4916..8b6f8e8ddd 100644 --- a/source4/libcli/ldap/ldap_ildap.c +++ b/source4/libcli/ldap/ldap_ildap.c @@ -119,8 +119,12 @@ _PUBLIC_ NTSTATUS ildap_search(struct ldap_connection *conn, const char *basedn, struct ldb_control ***control_res, struct ldap_message ***results) { - struct ldb_parse_tree *tree = ldb_parse_tree(conn, expression); NTSTATUS status; + struct ldb_parse_tree *tree = ldb_parse_tree(conn, expression); + + if (tree == NULL) { + return NT_STATUS_INVALID_PARAMETER; + } status = ildap_search_bytree(conn, basedn, scope, tree, attrs, attributesonly, control_req, control_res, results); |