]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Fix a nullptr dereference in ZSTD_createCDict_advanced2() 3847/head
authorMichał Chojnowski <michal.chojnowski@scylladb.com>
Sat, 16 Dec 2023 11:32:52 +0000 (12:32 +0100)
committerMichał Chojnowski <michal.chojnowski@scylladb.com>
Sat, 16 Dec 2023 12:02:18 +0000 (13:02 +0100)
If the relevant allocation returns NULL, ZSTD_createCDict_advanced_internal()
will return NULL. But ZSTD_createCDict_advanced2() doesn't check for
this and attempts to use the returned pointer anyway, which leads to
a segfault.

lib/compress/zstd_compress.c

index cdd763ff6cfa53b91d2081b8629232ef32f505f5..dc892dae7a435aba78cd25082b4e8490e27387f6 100644 (file)
@@ -5525,7 +5525,7 @@ ZSTD_CDict* ZSTD_createCDict_advanced2(
                         cctxParams.useRowMatchFinder, cctxParams.enableDedicatedDictSearch,
                         customMem);
 
-    if (ZSTD_isError( ZSTD_initCDict_internal(cdict,
+    if (!cdict || ZSTD_isError( ZSTD_initCDict_internal(cdict,
                                     dict, dictSize,
                                     dictLoadMethod, dictContentType,
                                     cctxParams) )) {