]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Added frame content size test within fuzzer
authorYann Collet <yann.collet.73@gmail.com>
Tue, 15 Mar 2016 14:24:52 +0000 (15:24 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Tue, 15 Mar 2016 14:24:52 +0000 (15:24 +0100)
lib/zstd_decompress.c
programs/fuzzer.c

index 685e6de444e243ddfe24b22526e8398f3674eaf8..6508dbcd49471c04c22b59f2d00db82d24859dca 100644 (file)
@@ -1033,7 +1033,7 @@ size_t ZSTD_decompress(void* dst, size_t maxDstSize, const void* src, size_t src
 }
 
 
-/* ******************************
+/*_******************************
 *  Streaming Decompression API
 ********************************/
 size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx)
index 697695b382b70e5d5e3c067524172070ecd1ba8c..55e0c7d70dbe5d55f1b6ac2444fdda3bc4bd3aef 100644 (file)
@@ -513,8 +513,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
         CHECK(ZSTD_isError(cSize), "ZSTD_compressCCtx failed");
 
         /* compression failure test : too small dest buffer */
-        if (cSize > 3)
-        {
+        if (cSize > 3) {
             const size_t missing = (FUZ_rand(&lseed) % (cSize-2)) + 1;   /* no problem, as cSize > 4 (frameHeaderSizer) */
             const size_t tooSmallSize = cSize - missing;
             static const U32 endMark = 0x4DC2B1A9;
@@ -526,6 +525,13 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
             CHECK(endCheck != endMark, "ZSTD_compressCCtx : dst buffer overflow");
         }
 
+        /* decompression header test */
+        {   ZSTD_frameParams dParams;
+            size_t const check = ZSTD_getFrameParams(&dParams, cBuffer, cSize);
+            CHECK(ZSTD_isError(check), "Frame Parameters extraction failed");
+            CHECK(dParams.frameContentSize != sampleSize, "Frame content size incorrect");
+        }
+
         /* successfull decompression tests*/
         dSupSize = (FUZ_rand(&lseed) & 1) ? 0 : (FUZ_rand(&lseed) & 31) + 1;
         dSize = ZSTD_decompress(dstBuffer, sampleSize + dSupSize, cBuffer, cSize);