Blame SOURCES/wavpack-5.4.0-CVE-2021-44269-heap-Out-of-bounds-Read.patch

0a98a4
diff --git a/cli/dsdiff.c b/cli/dsdiff.c
0a98a4
index d7adb6a..5bdcae3 100644
0a98a4
--- a/cli/dsdiff.c
0a98a4
+++ b/cli/dsdiff.c
0a98a4
@@ -278,6 +278,12 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
0a98a4
             }
0a98a4
 
0a98a4
             total_samples = dff_chunk_header.ckDataSize / config->num_channels;
0a98a4
+
0a98a4
+            if (total_samples <= 0 || total_samples > MAX_WAVPACK_SAMPLES) {
0a98a4
+                error_line ("%s is not a valid .DFF file!", infilename);
0a98a4
+                return WAVPACK_SOFT_ERROR;
0a98a4
+            }
0a98a4
+
0a98a4
             break;
0a98a4
         }
0a98a4
         else {          // just copy unknown chunks to output file
0a98a4
diff --git a/cli/dsf.c b/cli/dsf.c
0a98a4
index e1d7973..dddd488 100644
0a98a4
--- a/cli/dsf.c
0a98a4
+++ b/cli/dsf.c
0a98a4
@@ -113,6 +113,7 @@ int ParseDsfHeaderConfig (FILE *infile, char *infilename, char *fourcc, WavpackC
0a98a4
 
0a98a4
     if (format_chunk.ckSize != sizeof (DSFFormatChunk) || format_chunk.formatVersion != 1 ||
0a98a4
         format_chunk.formatID != 0 || format_chunk.blockSize != DSF_BLOCKSIZE || format_chunk.reserved ||
0a98a4
+        format_chunk.sampleCount <= 0 || format_chunk.sampleCount > MAX_WAVPACK_SAMPLES * 8 ||
0a98a4
         (format_chunk.bitsPerSample != 1 && format_chunk.bitsPerSample != 8) ||
0a98a4
         format_chunk.numChannels < 1 || format_chunk.numChannels > 6 ||
0a98a4
         format_chunk.chanType < 1 || format_chunk.chanType > NUM_CHAN_TYPES) {
0a98a4