[PATCHv7 03/24] lib: zstd: fix null-deref in ZSTD_createCDict_advanced2()

From: Sergey Senozhatsky
Date: Mon Sep 02 2024 - 06:57:52 EST


ZSTD_createCDict_advanced2() must ensure that
ZSTD_createCDict_advanced_internal() has successfully
allocated cdict. customMalloc() may be called under
low memory condition and may be unable to allocate
workspace for cdict.

Cc: Nick Terrell <terrelln@xxxxxx>
Signed-off-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
---
lib/zstd/compress/zstd_compress.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/lib/zstd/compress/zstd_compress.c b/lib/zstd/compress/zstd_compress.c
index c1c316e9e289..e48c73880477 100644
--- a/lib/zstd/compress/zstd_compress.c
+++ b/lib/zstd/compress/zstd_compress.c
@@ -5336,6 +5336,8 @@ ZSTD_CDict* ZSTD_createCDict_advanced2(
dictLoadMethod, cctxParams.cParams,
cctxParams.useRowMatchFinder, cctxParams.enableDedicatedDictSearch,
customMem);
+ if (!cdict)
+ return NULL;

if (ZSTD_isError( ZSTD_initCDict_internal(cdict,
dict, dictSize,
--
2.46.0.469.g59c65b2a67-goog