CVE-2018-1140 Add NULL check for ldb_dn_get_casefold() in ltdb_index_dn_attr()
authorAndrej Gessel <Andrej.Gessel@janztec.com>
Fri, 6 Apr 2018 16:18:33 +0000 (18:18 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 14 Aug 2018 11:57:15 +0000 (13:57 +0200)
Signed-off-by: Andrej Gessel <Andrej.Gessel@janztec.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13374

lib/ldb/ldb_key_value/ldb_kv_index.c

index 550f4b620ad4fc4499f495512041853269ab5ffc..fda55dd548f1da39da39c9d0d29f6f2187920a28 100644 (file)
@@ -1613,6 +1613,15 @@ static int ldb_kv_index_dn_attr(struct ldb_module *module,
 
        /* work out the index key from the parent DN */
        val.data = (uint8_t *)((uintptr_t)ldb_dn_get_casefold(dn));
+       if (val.data == NULL) {
+               const char *dn_str = ldb_dn_get_linearized(dn);
+               ldb_asprintf_errstring(ldb_module_get_ctx(module),
+                                      __location__
+                                      ": Failed to get casefold DN "
+                                      "from: %s",
+                                      dn_str);
+               return LDB_ERR_OPERATIONS_ERROR;
+       }
        val.length = strlen((char *)val.data);
        key = ldb_kv_index_key(ldb, ldb_kv, attr, &val, NULL, truncation);
        if (!key) {