]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fix 44122 test error 3034/head
authorYann Collet <cyan@fb.com>
Thu, 27 Jan 2022 22:54:18 +0000 (14:54 -0800)
committerYann Collet <cyan@fb.com>
Thu, 27 Jan 2022 22:54:18 +0000 (14:54 -0800)
It's a bug in the test itself, in exceptional circumstances (no more space for additional sequence).

There should be enough room for all cases to work fine from now on,
and if not, we have an additional `assert()` to catch that situation.

tests/fuzz/sequence_compression_api.c

index b35f5a795634fa54486c85133a873fd0afe1cc82..443e0a181485e9383c71047bf47ecfbb3e779a19 100644 (file)
@@ -153,7 +153,7 @@ static size_t generateRandomSequences(FUZZ_dataProducer_t* producer,
         matchLengthMax = MIN(matchLengthMax, blockSizeMax/2);
     }
 
-    while ( nbSeqGenerated < ZSTD_FUZZ_MAX_NBSEQ-1
+    while ( nbSeqGenerated < ZSTD_FUZZ_MAX_NBSEQ-2 /* extra room for explicit delimiters */
          && bytesGenerated < ZSTD_FUZZ_GENERATED_SRC_MAXSIZE
          && !FUZZ_dataProducer_empty(producer)) {
         uint32_t matchLength;
@@ -214,6 +214,7 @@ static size_t generateRandomSequences(FUZZ_dataProducer_t* producer,
     if (mode == ZSTD_sf_explicitBlockDelimiters) {
         /* always end sequences with a block delimiter */
         const ZSTD_Sequence endBlock = {0, 0, 0, 0};
+        assert(nbSeqGenerated < ZSTD_FUZZ_MAX_NBSEQ);
         generatedSequences[nbSeqGenerated++] = endBlock;
     }