Page Menu
Home
Solus
Search
Configure Global Search
Log In
Files
F10796871
D11130.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
32 KB
Referenced Files
None
Subscribers
None
D11130.diff
View Options
diff --git a/abi_used_symbols b/abi_used_symbols
--- a/abi_used_symbols
+++ b/abi_used_symbols
@@ -1,9 +1,11 @@
libc.so.6:__ctype_b_loc
+libc.so.6:__ctype_tolower_loc
libc.so.6:__fprintf_chk
libc.so.6:__libc_start_main
libc.so.6:__memcpy_chk
libc.so.6:__memmove_chk
libc.so.6:__printf_chk
+libc.so.6:__snprintf_chk
libc.so.6:__sprintf_chk
libc.so.6:__stack_chk_fail
libc.so.6:__stpcpy_chk
diff --git a/files/catch-zero-channel-count.patch b/files/catch-zero-channel-count.patch
deleted file mode 100644
--- a/files/catch-zero-channel-count.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From cd353bccafb1274a525c3536aaff8c48c3a33aa0 Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Sun, 26 Aug 2018 21:25:38 -0700
-Subject: [PATCH] issue #43: catch zero channel count in DSF and DSDIFF files
-
----
- cli/dsdiff.c | 6 ++++++
- cli/dsf.c | 1 +
- 2 files changed, 7 insertions(+)
-
-diff --git a/cli/dsdiff.c b/cli/dsdiff.c
-index 6e28b95..1269289 100644
---- a/cli/dsdiff.c
-+++ b/cli/dsdiff.c
-@@ -204,6 +204,12 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
-
- chansSpecified = (int)(dff_chunk_header.ckDataSize - sizeof (numChannels)) / 4;
-
-+ if (numChannels < chansSpecified || numChannels < 1) {
-+ error_line ("%s is not a valid .DFF file!", infilename);
-+ free (prop_chunk);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
- while (chansSpecified--) {
- if (!strncmp (cptr, "SLFT", 4) || !strncmp (cptr, "MLFT", 4))
- chanMask |= 0x1;
-diff --git a/cli/dsf.c b/cli/dsf.c
-index 820665d..48be587 100644
---- a/cli/dsf.c
-+++ b/cli/dsf.c
-@@ -122,6 +122,7 @@ int ParseDsfHeaderConfig (FILE *infile, char *infilename, char *fourcc, WavpackC
- if (format_chunk.ckSize != sizeof (DSFFormatChunk) || format_chunk.formatVersion != 1 ||
- format_chunk.formatID != 0 || format_chunk.blockSize != DSF_BLOCKSIZE || format_chunk.reserved ||
- (format_chunk.bitsPerSample != 1 && format_chunk.bitsPerSample != 8) ||
-+ format_chunk.numChannels < 1 || format_chunk.numChannels > 6 ||
- format_chunk.chanType < 1 || format_chunk.chanType > NUM_CHAN_TYPES) {
- error_line ("%s is not a valid .DSF file!", infilename);
- return WAVPACK_SOFT_ERROR;
diff --git a/files/security/CVE-2018-19840.patch b/files/security/CVE-2018-19840.patch
deleted file mode 100644
--- a/files/security/CVE-2018-19840.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 070ef6f138956d9ea9612e69586152339dbefe51 Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Thu, 29 Nov 2018 21:00:42 -0800
-Subject: [PATCH] issue #53: error out on zero sample rate
-
----
- src/pack_utils.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/pack_utils.c b/src/pack_utils.c
-index 2253f0d..2a83497 100644
---- a/src/pack_utils.c
-+++ b/src/pack_utils.c
-@@ -195,6 +195,11 @@ int WavpackSetConfiguration64 (WavpackContext *wpc, WavpackConfig *config, int64
- int num_chans = config->num_channels;
- int i;
-
-+ if (!config->sample_rate) {
-+ strcpy (wpc->error_message, "sample rate cannot be zero!");
-+ return FALSE;
-+ }
-+
- wpc->stream_version = (config->flags & CONFIG_COMPATIBLE_WRITE) ? CUR_STREAM_VERS : MAX_STREAM_VERS;
-
- if ((config->qmode & QMODE_DSD_AUDIO) && config->bytes_per_sample == 1 && config->bits_per_sample == 8) {
diff --git a/files/security/CVE-2018-19841.patch b/files/security/CVE-2018-19841.patch
deleted file mode 100644
--- a/files/security/CVE-2018-19841.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From bba5389dc598a92bdf2b297c3ea34620b6679b5b Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Thu, 29 Nov 2018 21:53:51 -0800
-Subject: [PATCH] issue #54: fix potential out-of-bounds heap read
-
----
- src/open_utils.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/open_utils.c b/src/open_utils.c
-index 80051fc..4fe0d67 100644
---- a/src/open_utils.c
-+++ b/src/open_utils.c
-@@ -1258,13 +1258,13 @@ int WavpackVerifySingleBlock (unsigned char *buffer, int verify_checksum)
- #endif
-
- if (meta_bc == 4) {
-- if (*dp++ != (csum & 0xff) || *dp++ != ((csum >> 8) & 0xff) || *dp++ != ((csum >> 16) & 0xff) || *dp++ != ((csum >> 24) & 0xff))
-+ if (*dp != (csum & 0xff) || dp[1] != ((csum >> 8) & 0xff) || dp[2] != ((csum >> 16) & 0xff) || dp[3] != ((csum >> 24) & 0xff))
- return FALSE;
- }
- else {
- csum ^= csum >> 16;
-
-- if (*dp++ != (csum & 0xff) || *dp++ != ((csum >> 8) & 0xff))
-+ if (*dp != (csum & 0xff) || dp[1] != ((csum >> 8) & 0xff))
- return FALSE;
- }
-
diff --git a/files/security/CVE-2019-1010315.patch b/files/security/CVE-2019-1010315.patch
deleted file mode 100644
--- a/files/security/CVE-2019-1010315.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 4c0faba32fddbd0745cbfaf1e1aeb3da5d35b9fc Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Sat, 2 Mar 2019 18:37:14 -0800
-Subject: [PATCH] issue #65: make sure DSDIFF files have a valid channel count
-
----
- cli/dsdiff.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/cli/dsdiff.c b/cli/dsdiff.c
-index 0ac4321..f357181 100644
---- a/cli/dsdiff.c
-+++ b/cli/dsdiff.c
-@@ -180,7 +180,7 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
-
- if (!strncmp (prop_chunk, "SND ", 4)) {
- char *cptr = prop_chunk + 4, *eptr = prop_chunk + dff_chunk_header.ckDataSize;
-- uint16_t numChannels, chansSpecified, chanMask = 0;
-+ uint16_t numChannels = 0, chansSpecified, chanMask = 0;
- uint32_t sampleRate;
-
- while (eptr - cptr >= sizeof (dff_chunk_header)) {
-@@ -204,7 +204,7 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
-
- chansSpecified = (int)(dff_chunk_header.ckDataSize - sizeof (numChannels)) / 4;
-
-- if (numChannels < chansSpecified || numChannels < 1) {
-+ if (numChannels < chansSpecified || numChannels < 1 || numChannels > 256) {
- error_line ("%s is not a valid .DFF file!", infilename);
- free (prop_chunk);
- return WAVPACK_SOFT_ERROR;
-@@ -279,6 +279,12 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- free (prop_chunk);
- }
- else if (!strncmp (dff_chunk_header.ckID, "DSD ", 4)) {
-+
-+ if (!config->num_channels) {
-+ error_line ("%s is not a valid .DFF file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
- total_samples = dff_chunk_header.ckDataSize / config->num_channels;
- break;
- }
diff --git a/files/security/CVE-2019-1010317.patch b/files/security/CVE-2019-1010317.patch
deleted file mode 100644
--- a/files/security/CVE-2019-1010317.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f68a9555b548306c5b1ee45199ccdc4a16a6101b Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Mon, 4 Mar 2019 21:09:41 -0800
-Subject: [PATCH] issue #66: make sure CAF files have a "desc" chunk
-
----
- cli/caff.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/cli/caff.c b/cli/caff.c
-index 2a5e2d9..a35da74 100644
---- a/cli/caff.c
-+++ b/cli/caff.c
-@@ -152,7 +152,7 @@ static struct {
-
- int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, WavpackContext *wpc, WavpackConfig *config)
- {
-- uint32_t chan_chunk = 0, channel_layout = 0, bcount;
-+ uint32_t chan_chunk = 0, desc_chunk = 0, channel_layout = 0, bcount;
- unsigned char *channel_identities = NULL;
- unsigned char *channel_reorder = NULL;
- int64_t total_samples = 0, infilesize;
-@@ -218,6 +218,7 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- }
-
- WavpackBigEndianToNative (&caf_audio_format, CAFAudioFormatFormat);
-+ desc_chunk = 1;
-
- if (debug_logging_mode) {
- char formatstr [5];
-@@ -458,7 +459,7 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- else if (!strncmp (caf_chunk_header.mChunkType, "data", 4)) { // on the data chunk, get size and exit loop
- uint32_t mEditCount;
-
-- if (!DoReadFile (infile, &mEditCount, sizeof (mEditCount), &bcount) ||
-+ if (!desc_chunk || !DoReadFile (infile, &mEditCount, sizeof (mEditCount), &bcount) ||
- bcount != sizeof (mEditCount)) {
- error_line ("%s is not a valid .CAF file!", infilename);
- return WAVPACK_SOFT_ERROR;
diff --git a/files/security/CVE-2019-1010319.patch b/files/security/CVE-2019-1010319.patch
deleted file mode 100644
--- a/files/security/CVE-2019-1010319.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 33a0025d1d63ccd05d9dbaa6923d52b1446a62fe Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Tue, 5 Mar 2019 21:21:48 -0800
-Subject: [PATCH] issue #68: clear WaveHeader at start to prevent uninitialized
- read
-
----
- cli/wave64.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/cli/wave64.c b/cli/wave64.c
-index 7beffe6..59548b1 100644
---- a/cli/wave64.c
-+++ b/cli/wave64.c
-@@ -56,6 +56,7 @@ int ParseWave64HeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- int format_chunk = 0;
- uint32_t bcount;
-
-+ CLEAR (WaveHeader);
- infilesize = DoGetFileSize (infile);
- memcpy (&filehdr, fourcc, 4);
-
diff --git a/files/security/CVE-2019-11498.patch b/files/security/CVE-2019-11498.patch
deleted file mode 100644
--- a/files/security/CVE-2019-11498.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From bc6cba3f552c44565f7f1e66dc1580189addb2b4 Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Tue, 5 Mar 2019 21:32:27 -0800
-Subject: [PATCH] issue #67: make sure sample rate is specified and non-zero in
- DFF files
-
----
- cli/dsdiff.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/cli/dsdiff.c b/cli/dsdiff.c
-index f357181..193adee 100644
---- a/cli/dsdiff.c
-+++ b/cli/dsdiff.c
-@@ -181,7 +181,7 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- if (!strncmp (prop_chunk, "SND ", 4)) {
- char *cptr = prop_chunk + 4, *eptr = prop_chunk + dff_chunk_header.ckDataSize;
- uint16_t numChannels = 0, chansSpecified, chanMask = 0;
-- uint32_t sampleRate;
-+ uint32_t sampleRate = 0;
-
- while (eptr - cptr >= sizeof (dff_chunk_header)) {
- memcpy (&dff_chunk_header, cptr, sizeof (dff_chunk_header));
-@@ -280,7 +280,7 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- }
- else if (!strncmp (dff_chunk_header.ckID, "DSD ", 4)) {
-
-- if (!config->num_channels) {
-+ if (!config->num_channels || !config->sample_rate) {
- error_line ("%s is not a valid .DFF file!", infilename);
- return WAVPACK_SOFT_ERROR;
- }
diff --git a/files/security/cve-2018-10536.patch b/files/security/cve-2018-10536.patch
deleted file mode 100644
--- a/files/security/cve-2018-10536.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 26cb47f99d481ad9b93eeff80d26e6b63bbd7e15 Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Tue, 24 Apr 2018 22:18:07 -0700
-Subject: [PATCH] issue #30 issue #31 issue #32: no multiple format chunks in
- WAV or W64
-
----
- cli/riff.c | 7 ++++++-
- cli/wave64.c | 6 ++++++
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/cli/riff.c b/cli/riff.c
-index 7bddf63..5d6452e 100644
---- a/cli/riff.c
-+++ b/cli/riff.c
-@@ -53,7 +53,7 @@ extern int debug_logging_mode;
-
- int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, WavpackContext *wpc, WavpackConfig *config)
- {
-- int is_rf64 = !strncmp (fourcc, "RF64", 4), got_ds64 = 0;
-+ int is_rf64 = !strncmp (fourcc, "RF64", 4), got_ds64 = 0, format_chunk = 0;
- int64_t total_samples = 0, infilesize;
- RiffChunkHeader riff_chunk_header;
- ChunkHeader chunk_header;
-@@ -140,6 +140,11 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- else if (!strncmp (chunk_header.ckID, "fmt ", 4)) { // if it's the format chunk, we want to get some info out of there and
- int supported = TRUE, format; // make sure it's a .wav file we can handle
-
-+ if (format_chunk++) {
-+ error_line ("%s is not a valid .WAV file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
- if (chunk_header.ckSize < 16 || chunk_header.ckSize > sizeof (WaveHeader) ||
- !DoReadFile (infile, &WaveHeader, chunk_header.ckSize, &bcount) ||
- bcount != chunk_header.ckSize) {
-diff --git a/cli/wave64.c b/cli/wave64.c
-index fa928a0..0388dc7 100644
---- a/cli/wave64.c
-+++ b/cli/wave64.c
-@@ -53,6 +53,7 @@ int ParseWave64HeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- Wave64ChunkHeader chunk_header;
- Wave64FileHeader filehdr;
- WaveHeader WaveHeader;
-+ int format_chunk = 0;
- uint32_t bcount;
-
- infilesize = DoGetFileSize (infile);
-@@ -104,6 +105,11 @@ int ParseWave64HeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- if (!memcmp (chunk_header.ckID, fmt_guid, sizeof (fmt_guid))) {
- int supported = TRUE, format;
-
-+ if (format_chunk++) {
-+ error_line ("%s is not a valid .W64 file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
- chunk_header.ckSize = (chunk_header.ckSize + 7) & ~7L;
-
- if (chunk_header.ckSize < 16 || chunk_header.ckSize > sizeof (WaveHeader) ||
diff --git a/files/security/cve-2018-10537.nopatch b/files/security/cve-2018-10537.nopatch
deleted file mode 100644
--- a/files/security/cve-2018-10537.nopatch
+++ /dev/null
@@ -1 +0,0 @@
-# Resolved by cve-2018-10536.patch
diff --git a/files/security/cve-2018-10538.patch b/files/security/cve-2018-10538.patch
deleted file mode 100644
--- a/files/security/cve-2018-10538.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 6f8bb34c2993a48ab9afbe353e6d0cff7c8d821d Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Tue, 24 Apr 2018 17:27:01 -0700
-Subject: [PATCH] issue #33, sanitize size of unknown chunks before malloc()
-
----
- cli/dsdiff.c | 9 ++++++++-
- cli/riff.c | 9 ++++++++-
- cli/wave64.c | 9 ++++++++-
- 3 files changed, 24 insertions(+), 3 deletions(-)
-
-diff --git a/cli/dsdiff.c b/cli/dsdiff.c
-index c016df9..fa56bbb 100644
---- a/cli/dsdiff.c
-+++ b/cli/dsdiff.c
-@@ -279,7 +279,14 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- else { // just copy unknown chunks to output file
-
- int bytes_to_copy = (int)(((dff_chunk_header.ckDataSize) + 1) & ~(int64_t)1);
-- char *buff = malloc (bytes_to_copy);
-+ char *buff;
-+
-+ if (bytes_to_copy < 0 || bytes_to_copy > 4194304) {
-+ error_line ("%s is not a valid .DFF file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ buff = malloc (bytes_to_copy);
-
- if (debug_logging_mode)
- error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes",
-diff --git a/cli/riff.c b/cli/riff.c
-index de98c1e..7bddf63 100644
---- a/cli/riff.c
-+++ b/cli/riff.c
-@@ -286,7 +286,14 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- else { // just copy unknown chunks to output file
-
- int bytes_to_copy = (chunk_header.ckSize + 1) & ~1L;
-- char *buff = malloc (bytes_to_copy);
-+ char *buff;
-+
-+ if (bytes_to_copy < 0 || bytes_to_copy > 4194304) {
-+ error_line ("%s is not a valid .WAV file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ buff = malloc (bytes_to_copy);
-
- if (debug_logging_mode)
- error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes",
-diff --git a/cli/wave64.c b/cli/wave64.c
-index 591d640..fa928a0 100644
---- a/cli/wave64.c
-+++ b/cli/wave64.c
-@@ -241,7 +241,14 @@ int ParseWave64HeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- }
- else { // just copy unknown chunks to output file
- int bytes_to_copy = (chunk_header.ckSize + 7) & ~7L;
-- char *buff = malloc (bytes_to_copy);
-+ char *buff;
-+
-+ if (bytes_to_copy < 0 || bytes_to_copy > 4194304) {
-+ error_line ("%s is not a valid .W64 file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ buff = malloc (bytes_to_copy);
-
- if (debug_logging_mode)
- error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes",
diff --git a/files/security/cve-2018-10539.nopatch b/files/security/cve-2018-10539.nopatch
deleted file mode 100644
--- a/files/security/cve-2018-10539.nopatch
+++ /dev/null
@@ -1 +0,0 @@
-# Resolved by cve-2018-10538.patch
diff --git a/files/security/cve-2018-10540.nopatch b/files/security/cve-2018-10540.nopatch
deleted file mode 100644
--- a/files/security/cve-2018-10540.nopatch
+++ /dev/null
@@ -1 +0,0 @@
-# Resolved by cve-2018-10538.patch
diff --git a/files/security/cve-2018-6767.patch b/files/security/cve-2018-6767.patch
deleted file mode 100644
--- a/files/security/cve-2018-6767.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From d5bf76b5a88d044a1be1d5656698e3ba737167e5 Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Sun, 4 Feb 2018 11:28:15 -0800
-Subject: [PATCH] issue #27, do not overwrite stack on corrupt RF64 file
-
----
- cli/riff.c | 39 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 32 insertions(+), 7 deletions(-)
-
-diff --git a/cli/riff.c b/cli/riff.c
-index 8b1af45..de98c1e 100644
---- a/cli/riff.c
-+++ b/cli/riff.c
-@@ -42,6 +42,7 @@ typedef struct {
-
- #pragma pack(pop)
-
-+#define CS64ChunkFormat "4D"
- #define DS64ChunkFormat "DDDL"
-
- #define WAVPACK_NO_ERROR 0
-@@ -101,13 +102,13 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
-
- if (!strncmp (chunk_header.ckID, "ds64", 4)) {
- if (chunk_header.ckSize < sizeof (DS64Chunk) ||
-- !DoReadFile (infile, &ds64_chunk, chunk_header.ckSize, &bcount) ||
-- bcount != chunk_header.ckSize) {
-+ !DoReadFile (infile, &ds64_chunk, sizeof (DS64Chunk), &bcount) ||
-+ bcount != sizeof (DS64Chunk)) {
- error_line ("%s is not a valid .WAV file!", infilename);
- return WAVPACK_SOFT_ERROR;
- }
- else if (!(config->qmode & QMODE_NO_STORE_WRAPPER) &&
-- !WavpackAddWrapper (wpc, &ds64_chunk, chunk_header.ckSize)) {
-+ !WavpackAddWrapper (wpc, &ds64_chunk, sizeof (DS64Chunk))) {
- error_line ("%s", WavpackGetErrorMessage (wpc));
- return WAVPACK_SOFT_ERROR;
- }
-@@ -315,10 +316,11 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
-
- int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, int qmode)
- {
-- int do_rf64 = 0, write_junk = 1;
-+ int do_rf64 = 0, write_junk = 1, table_length = 0;
- ChunkHeader ds64hdr, datahdr, fmthdr;
- RiffChunkHeader riffhdr;
- DS64Chunk ds64_chunk;
-+ CS64Chunk cs64_chunk;
- JunkChunk junkchunk;
- WaveHeader wavhdr;
- uint32_t bcount;
-@@ -380,6 +382,7 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples,
- strncpy (riffhdr.formType, "WAVE", sizeof (riffhdr.formType));
- total_riff_bytes = sizeof (riffhdr) + wavhdrsize + sizeof (datahdr) + ((total_data_bytes + 1) & ~(int64_t)1);
- if (do_rf64) total_riff_bytes += sizeof (ds64hdr) + sizeof (ds64_chunk);
-+ total_riff_bytes += table_length * sizeof (CS64Chunk);
- if (write_junk) total_riff_bytes += sizeof (junkchunk);
- strncpy (fmthdr.ckID, "fmt ", sizeof (fmthdr.ckID));
- strncpy (datahdr.ckID, "data", sizeof (datahdr.ckID));
-@@ -394,11 +397,12 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples,
-
- if (do_rf64) {
- strncpy (ds64hdr.ckID, "ds64", sizeof (ds64hdr.ckID));
-- ds64hdr.ckSize = sizeof (ds64_chunk);
-+ ds64hdr.ckSize = sizeof (ds64_chunk) + (table_length * sizeof (CS64Chunk));
- CLEAR (ds64_chunk);
- ds64_chunk.riffSize64 = total_riff_bytes;
- ds64_chunk.dataSize64 = total_data_bytes;
- ds64_chunk.sampleCount64 = total_samples;
-+ ds64_chunk.tableLength = table_length;
- riffhdr.ckSize = (uint32_t) -1;
- datahdr.ckSize = (uint32_t) -1;
- WavpackNativeToLittleEndian (&ds64hdr, ChunkHeaderFormat);
-@@ -409,6 +413,14 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples,
- datahdr.ckSize = (uint32_t) total_data_bytes;
- }
-
-+ // this "table" is just a dummy placeholder for testing (normally not written)
-+
-+ if (table_length) {
-+ strncpy (cs64_chunk.ckID, "dmmy", sizeof (cs64_chunk.ckID));
-+ cs64_chunk.chunkSize64 = 12345678;
-+ WavpackNativeToLittleEndian (&cs64_chunk, CS64ChunkFormat);
-+ }
-+
- // write the RIFF chunks up to just before the data starts
-
- WavpackNativeToLittleEndian (&riffhdr, ChunkHeaderFormat);
-@@ -418,8 +430,21 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples,
-
- if (!DoWriteFile (outfile, &riffhdr, sizeof (riffhdr), &bcount) || bcount != sizeof (riffhdr) ||
- (do_rf64 && (!DoWriteFile (outfile, &ds64hdr, sizeof (ds64hdr), &bcount) || bcount != sizeof (ds64hdr))) ||
-- (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk))) ||
-- (write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) ||
-+ (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk)))) {
-+ error_line ("can't write .WAV data, disk probably full!");
-+ return FALSE;
-+ }
-+
-+ // again, this is normally not written except for testing
-+
-+ while (table_length--)
-+ if (!DoWriteFile (outfile, &cs64_chunk, sizeof (cs64_chunk), &bcount) || bcount != sizeof (cs64_chunk)) {
-+ error_line ("can't write .WAV data, disk probably full!");
-+ return FALSE;
-+ }
-+
-+
-+ if ((write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) ||
- !DoWriteFile (outfile, &fmthdr, sizeof (fmthdr), &bcount) || bcount != sizeof (fmthdr) ||
- !DoWriteFile (outfile, &wavhdr, wavhdrsize, &bcount) || bcount != wavhdrsize ||
- !DoWriteFile (outfile, &datahdr, sizeof (datahdr), &bcount) || bcount != sizeof (datahdr)) {
diff --git a/files/security/cve-2018-7253.patch b/files/security/cve-2018-7253.patch
deleted file mode 100644
--- a/files/security/cve-2018-7253.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 36a24c7881427d2e1e4dc1cef58f19eee0d13aec Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Sat, 10 Feb 2018 16:01:39 -0800
-Subject: [PATCH] issue #28, do not overwrite heap on corrupt DSDIFF file
-
----
- cli/dsdiff.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/cli/dsdiff.c b/cli/dsdiff.c
-index 410dc1c..c016df9 100644
---- a/cli/dsdiff.c
-+++ b/cli/dsdiff.c
-@@ -153,7 +153,17 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
- error_line ("dsdiff file version = 0x%08x", version);
- }
- else if (!strncmp (dff_chunk_header.ckID, "PROP", 4)) {
-- char *prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
-+ char *prop_chunk;
-+
-+ if (dff_chunk_header.ckDataSize < 4 || dff_chunk_header.ckDataSize > 1024) {
-+ error_line ("%s is not a valid .DFF file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ if (debug_logging_mode)
-+ error_line ("got PROP chunk of %d bytes total", (int) dff_chunk_header.ckDataSize);
-+
-+ prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
-
- if (!DoReadFile (infile, prop_chunk, (uint32_t) dff_chunk_header.ckDataSize, &bcount) ||
- bcount != dff_chunk_header.ckDataSize) {
diff --git a/files/security/cve-2018-7254.patch b/files/security/cve-2018-7254.patch
deleted file mode 100644
--- a/files/security/cve-2018-7254.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 8e3fe45a7bac31d9a3b558ae0079e2d92a04799e Mon Sep 17 00:00:00 2001
-From: David Bryant <david@wavpack.com>
-Date: Sun, 11 Feb 2018 16:37:47 -0800
-Subject: [PATCH] issue #28, fix buffer overflows and bad allocs on corrupt CAF
- files
-
----
- cli/caff.c | 30 +++++++++++++++++++++++-------
- 1 file changed, 23 insertions(+), 7 deletions(-)
-
-diff --git a/cli/caff.c b/cli/caff.c
-index ae57c4b..6248a71 100644
---- a/cli/caff.c
-+++ b/cli/caff.c
-@@ -89,8 +89,8 @@ typedef struct
-
- #define CAFChannelDescriptionFormat "LLLLL"
-
--static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21 };
--static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16 };
-+static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21,0 };
-+static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16,0 };
-
- static struct {
- uint32_t mChannelLayoutTag; // Core Audio layout, 100 - 146 in high word, num channels in low word
-@@ -274,10 +274,19 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- }
- }
- else if (!strncmp (caf_chunk_header.mChunkType, "chan", 4)) {
-- CAFChannelLayout *caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize);
-+ CAFChannelLayout *caf_channel_layout;
-
-- if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) ||
-- !DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) ||
-+ if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) || caf_chunk_header.mChunkSize > 1024) {
-+ error_line ("this .CAF file has an invalid 'chan' chunk!");
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ if (debug_logging_mode)
-+ error_line ("'chan' chunk is %d bytes", (int) caf_chunk_header.mChunkSize);
-+
-+ caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize);
-+
-+ if (!DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) ||
- bcount != caf_chunk_header.mChunkSize) {
- error_line ("%s is not a valid .CAF file!", infilename);
- free (caf_channel_layout);
-@@ -495,8 +504,15 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack
- }
- else { // just copy unknown chunks to output file
-
-- int bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize;
-- char *buff = malloc (bytes_to_copy);
-+ uint32_t bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize;
-+ char *buff;
-+
-+ if (caf_chunk_header.mChunkSize < 0 || caf_chunk_header.mChunkSize > 1048576) {
-+ error_line ("%s is not a valid .CAF file!", infilename);
-+ return WAVPACK_SOFT_ERROR;
-+ }
-+
-+ buff = malloc (bytes_to_copy);
-
- if (debug_logging_mode)
- error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes",
diff --git a/files/series b/files/series
deleted file mode 100644
--- a/files/series
+++ /dev/null
@@ -1,12 +0,0 @@
-security/cve-2018-6767.patch
-security/cve-2018-7253.patch
-security/cve-2018-7254.patch
-security/cve-2018-10536.patch
-security/cve-2018-10538.patch
-security/CVE-2018-19840.patch
-security/CVE-2018-19841.patch
-catch-zero-channel-count.patch
-security/CVE-2019-1010315.patch
-security/CVE-2019-1010317.patch
-security/CVE-2019-11498.patch
-security/CVE-2019-1010319.patch
diff --git a/package.yml b/package.yml
--- a/package.yml
+++ b/package.yml
@@ -1,20 +1,24 @@
name : wavpack
-version : 5.1.0
-release : 10
+version : 5.4.0
+release : 11
source :
- - https://github.com/dbry/WavPack/archive/5.1.0.tar.gz : 1af7eaccbf560271013d4179d98ef6fc681a2bb3603382577eeba73d438785f4
-homepage : http://www.wavpack.com
+ - https://github.com/dbry/WavPack/releases/download/5.4.0/wavpack-5.4.0.tar.xz : 4bde6a6b2a86614a6bd2579e60dcc974e2c8f93608d2281110a717c1b3c28b79
+homepage : https://www.wavpack.com
license : BSD-3-Clause
summary : WavPack audio compression tools
-component : multimedia.codecs
+component :
+ - multimedia.codecs
+ - utils :
+ - multimedia.codecs
description: |
WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode.
-patterns :
- - utils : [/usr/bin, /usr/share/man/man1]
setup : |
- %apply_patches
- %reconfigure --disable-static
+ %configure --disable-static
build : |
%make
install : |
%make_install
+patterns :
+ - utils :
+ - /usr/bin
+ - /usr/share/man/man1
diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml
--- a/pspec_x86_64.xml
+++ b/pspec_x86_64.xml
@@ -1,10 +1,10 @@
<PISI>
<Source>
<Name>wavpack</Name>
- <Homepage>http://www.wavpack.com</Homepage>
+ <Homepage>https://www.wavpack.com</Homepage>
<Packager>
- <Name>F. von Gellhorn</Name>
- <Email>flinux@vongellhorn.ch</Email>
+ <Name>Martin Reboredo</Name>
+ <Email>yakoyoku@gmail.com</Email>
</Packager>
<License>BSD-3-Clause</License>
<PartOf>multimedia.codecs</PartOf>
@@ -21,7 +21,7 @@
<PartOf>multimedia.codecs</PartOf>
<Files>
<Path fileType="library">/usr/lib64/libwavpack.so.1</Path>
- <Path fileType="library">/usr/lib64/libwavpack.so.1.2.0</Path>
+ <Path fileType="library">/usr/lib64/libwavpack.so.1.2.3</Path>
</Files>
</Package>
<Package>
@@ -31,7 +31,7 @@
</Description>
<PartOf>programming.devel</PartOf>
<RuntimeDependencies>
- <Dependency release="10">wavpack</Dependency>
+ <Dependency release="11">wavpack</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/wavpack/wavpack.h</Path>
@@ -44,8 +44,9 @@
<Summary xml:lang="en">WavPack audio compression tools</Summary>
<Description xml:lang="en">WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode.
</Description>
+ <PartOf>multimedia.codecs</PartOf>
<RuntimeDependencies>
- <Dependency release="10">wavpack</Dependency>
+ <Dependency release="11">wavpack</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/wavpack</Path>
@@ -59,12 +60,12 @@
</Files>
</Package>
<History>
- <Update release="10">
- <Date>2021-06-20</Date>
- <Version>5.1.0</Version>
+ <Update release="11">
+ <Date>2021-07-31</Date>
+ <Version>5.4.0</Version>
<Comment>Packaging update</Comment>
- <Name>F. von Gellhorn</Name>
- <Email>flinux@vongellhorn.ch</Email>
+ <Name>Martin Reboredo</Name>
+ <Email>yakoyoku@gmail.com</Email>
</Update>
</History>
</PISI>
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/plain
Expires
May 29 2023, 3:41 AM (10 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5831088
Default Alt Text
D11130.diff (32 KB)
Attached To
Mode
D11130: Update wavpack to 5.4.0
Attached
Detach File
Event Timeline
Log In to Comment