]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fixed some regressionTests
authorYann Collet <cyan@fb.com>
Sat, 24 Feb 2024 02:48:29 +0000 (18:48 -0800)
committerYann Collet <cyan@fb.com>
Sat, 24 Feb 2024 02:48:29 +0000 (18:48 -0800)
but not all

lib/compress/zstd_compress_superblock.c
tests/fuzz/dictionary_round_trip.c

index d31bed32ef64e93e67d23a49a46860caf1f04bb9..09219d007bcdc353448f35dc1228bf3f1876b7d9 100644 (file)
@@ -467,7 +467,7 @@ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr,
     const BYTE* ofCodePtr = seqStorePtr->ofCode;
     size_t const minTarget = 2 KB; /* enforce minimum size to avoid undesirable side effects */
     size_t const targetCBlockSize = MAX(minTarget, cctxParams->targetCBlockSize);
-    int writeLitEntropy = entropyMetadata->hufMetadata.hType == set_compressed;
+    int writeLitEntropy = (entropyMetadata->hufMetadata.hType == set_compressed);
     int writeSeqEntropy = 1;
     size_t nbSubBlocks = 1;
 
@@ -523,9 +523,11 @@ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr,
                                                lastBlock && lastSubBlock);
             FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed");
 
-            if (cSize == 0 || cSize >= decompressedSize) {
+            if (cSize == 0 || (cSize >= decompressedSize && n>0)) {
+                litEntropyWritten = 0;
+                seqEntropyWritten = 0;
                 cSize = ZSTD_noCompressBlock(op, (size_t)(oend - op), ip, decompressedSize, lastBlock);
-                DEBUGLOG(5, "send an uncompressed sub-block of %u bytes", (unsigned)(decompressedSize));
+                DEBUGLOG(5, "Generate uncompressed sub-block of %u bytes", (unsigned)(decompressedSize));
                 FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed");
                 assert(cSize != 0);
                 /* We have to regenerate the repcodes because we've skipped some sequences */
@@ -578,8 +580,9 @@ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr,
 
 size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc,
                                void* dst, size_t dstCapacity,
-                               void const* src, size_t srcSize,
-                               unsigned lastBlock) {
+                               const void* src, size_t srcSize,
+                               unsigned lastBlock)
+{
     ZSTD_entropyCTablesMetadata_t entropyMetadata;
 
     FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(&zc->seqStore,
index 06fdf24e9fb0d371747a57a93753dba1204d2712..0470fbf53adb9f2cce81b66480ac405a9283960d 100644 (file)
 #include "fuzz_data_producer.h"
 #include "fuzz_third_party_seq_prod.h"
 
-static ZSTD_CCtx *cctx = NULL;
-static ZSTD_DCtx *dctx = NULL;
+static ZSTD_CCtxcctx = NULL;
+static ZSTD_DCtxdctx = NULL;
 
-static size_t roundTripTest(void *result, size_t resultCapacity,
-                            void *compressed, size_t compressedCapacity,
-                            const void *src, size_t srcSize,
-                            FUZZ_dataProducer_t *producer)
+static size_t roundTripTest(voidresult, size_t resultCapacity,
+                            voidcompressed, size_t compressedCapacity,
+                            const voidsrc, size_t srcSize,
+                            FUZZ_dataProducer_tproducer)
 {
     ZSTD_dictContentType_e dictContentType = ZSTD_dct_auto;
     FUZZ_dict_t dict = FUZZ_train(src, srcSize, producer);