]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Checks malloc() for failure, returns 0 if so
authorSen Huang <senhuang96@fb.com>
Mon, 4 Nov 2019 21:13:52 +0000 (16:13 -0500)
committerSen Huang <senhuang96@fb.com>
Fri, 8 Nov 2019 18:57:26 +0000 (13:57 -0500)
lib/dictBuilder/zdict.c
lib/dictBuilder/zdict.h

index 32f863660829d86172c6f7cef294e66d23674001..6db57b1448cb47d7e4535519082a2cc7107fe0dd 100644 (file)
@@ -106,6 +106,9 @@ size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize)
 
     {   size_t headerSize;
         ZSTD_entropyDTables_t* dummyEntropyTables = (ZSTD_entropyDTables_t*)malloc(sizeof(ZSTD_entropyDTables_t));
+        if (!dummyEntropyTables) {
+            return 0;
+        }
         dummyEntropyTables->hufTable[0] = (HUF_DTable)((HufLog)*0x1000001);
         headerSize = ZSTD_loadDEntropy(dummyEntropyTables, dictBuffer, dictSize);
         free(dummyEntropyTables);
index f16d573a916106ff9beec3aba847387880da0694..bb89f1f9f9dbbdab6ee891d109d4537ddd83e387 100644 (file)
@@ -64,7 +64,7 @@ ZDICTLIB_API size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCap
 
 /*======   Helper functions   ======*/
 ZDICTLIB_API unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize);  /**< extracts dictID; @return zero if error (not a valid dictionary) */
-ZDICTLIB_API size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize);  /* returns dict header size; returns zero if error (not a valid dictionary) */
+ZDICTLIB_API size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize);  /* returns dict header size; returns zero if error (not a valid dictionary or mem alloc failure) */
 ZDICTLIB_API unsigned ZDICT_isError(size_t errorCode);
 ZDICTLIB_API const char* ZDICT_getErrorName(size_t errorCode);