ldb: Ensure not to segfault on a filter such as (mail=)
authorAndrew Bartlett <abartlet@samba.org>
Sat, 15 Jun 2013 06:00:42 +0000 (16:00 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 22 Jun 2013 07:33:14 +0000 (09:33 +0200)
As reported by Robin McCorkell <xenopathic@gmail.com> triggered by
Mozilla Thunderbird as an LDAP client.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Matthieu Patou <mat@matws.net>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sat Jun 22 09:33:14 CEST 2013 on sn-devel-104

lib/ldb/common/ldb_match.c

index 5eee02dea31197a7e146a666a9af28dd6c30f43a..7918aec65f166378a232e9da4513f1dd19928ff5 100644 (file)
@@ -249,6 +249,11 @@ static int ldb_wildcard_compare(struct ldb_context *ldb,
                return LDB_ERR_INVALID_ATTRIBUTE_SYNTAX;
        }
 
+       if (tree->u.substring.chunks == NULL) {
+               *matched = false;
+               return LDB_SUCCESS;
+       }
+
        if (a->syntax->canonicalise_fn(ldb, ldb, &value, &val) != 0) {
                return LDB_ERR_INVALID_ATTRIBUTE_SYNTAX;
        }