Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/wavpack/files/, media-sound/wavpack/
Date: Sat, 02 Jan 2021 11:53:31
Message-Id: 1609588404.22ab7121945950659d4325be712f786164699a6c.fordfrog@gentoo
1 commit: 22ab7121945950659d4325be712f786164699a6c
2 Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jan 2 11:53:18 2021 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 2 11:53:24 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=22ab7121
7
8 media-sound/wavpack: fixed out of bound write
9
10 Bug: https://bugs.gentoo.org/762154
11 Package-Manager: Portage-3.0.12, Repoman-3.0.2
12 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
13
14 .../files/wavpack-5.3.2-fix-overflows.patch | 52 ++++++++++++++++++++++
15 ...avpack-5.3.2.ebuild => wavpack-5.3.2-r1.ebuild} | 6 ++-
16 2 files changed, 57 insertions(+), 1 deletion(-)
17
18 diff --git a/media-sound/wavpack/files/wavpack-5.3.2-fix-overflows.patch b/media-sound/wavpack/files/wavpack-5.3.2-fix-overflows.patch
19 new file mode 100644
20 index 00000000000..fbbd40ba8bd
21 --- /dev/null
22 +++ b/media-sound/wavpack/files/wavpack-5.3.2-fix-overflows.patch
23 @@ -0,0 +1,52 @@
24 +From 89df160596132e3bd666322e1c20b2ebd4b92cd0 Mon Sep 17 00:00:00 2001
25 +From: David Bryant <david@×××××××.com>
26 +Date: Tue, 29 Dec 2020 20:47:19 -0800
27 +Subject: [PATCH] issue #91: fix integer overflows resulting in buffer overruns
28 + and sanitize a few more encoding parameters for clarity
29 +
30 +---
31 + src/pack_utils.c | 15 ++++++++++-----
32 + 1 file changed, 10 insertions(+), 5 deletions(-)
33 +
34 +diff --git a/src/pack_utils.c b/src/pack_utils.c
35 +index 17d9381..480ab90 100644
36 +--- a/src/pack_utils.c
37 ++++ b/src/pack_utils.c
38 +@@ -200,8 +200,13 @@ int WavpackSetConfiguration64 (WavpackContext *wpc, WavpackConfig *config, int64
39 + return FALSE;
40 + }
41 +
42 +- if (!num_chans) {
43 +- strcpy (wpc->error_message, "channel count cannot be zero!");
44 ++ if (num_chans <= 0 || num_chans > NEW_MAX_STREAMS * 2) {
45 ++ strcpy (wpc->error_message, "invalid channel count!");
46 ++ return FALSE;
47 ++ }
48 ++
49 ++ if (config->block_samples && (config->block_samples < 16 || config->block_samples > 131072)) {
50 ++ strcpy (wpc->error_message, "invalid custom block samples!");
51 + return FALSE;
52 + }
53 +
54 +@@ -523,7 +528,7 @@ int WavpackPackInit (WavpackContext *wpc)
55 + if (wpc->config.num_channels == 1)
56 + wpc->block_samples *= 2;
57 +
58 +- while (wpc->block_samples > 12000 && wpc->block_samples * wpc->config.num_channels > 300000)
59 ++ while (wpc->block_samples > 12000 && (int64_t) wpc->block_samples * wpc->config.num_channels > 300000)
60 + wpc->block_samples /= 2;
61 + }
62 + else {
63 +@@ -534,10 +539,10 @@ int WavpackPackInit (WavpackContext *wpc)
64 +
65 + wpc->block_samples = wpc->config.sample_rate / divisor;
66 +
67 +- while (wpc->block_samples > 12000 && wpc->block_samples * wpc->config.num_channels > 75000)
68 ++ while (wpc->block_samples > 12000 && (int64_t) wpc->block_samples * wpc->config.num_channels > 75000)
69 + wpc->block_samples /= 2;
70 +
71 +- while (wpc->block_samples * wpc->config.num_channels < 20000)
72 ++ while ((int64_t) wpc->block_samples * wpc->config.num_channels < 20000)
73 + wpc->block_samples *= 2;
74 + }
75 +
76
77 diff --git a/media-sound/wavpack/wavpack-5.3.2.ebuild b/media-sound/wavpack/wavpack-5.3.2-r1.ebuild
78 similarity index 91%
79 rename from media-sound/wavpack/wavpack-5.3.2.ebuild
80 rename to media-sound/wavpack/wavpack-5.3.2-r1.ebuild
81 index 33880cc9703..c34faa9eee4 100644
82 --- a/media-sound/wavpack/wavpack-5.3.2.ebuild
83 +++ b/media-sound/wavpack/wavpack-5.3.2-r1.ebuild
84 @@ -1,4 +1,4 @@
85 -# Copyright 1999-2020 Gentoo Authors
86 +# Copyright 1999-2021 Gentoo Authors
87 # Distributed under the terms of the GNU General Public License v2
88
89 EAPI=7
90 @@ -23,6 +23,10 @@ DEPEND="${RDEPEND}"
91
92 S="${WORKDIR}/WavPack-${COMMIT}"
93
94 +PATCHES=(
95 + "${FILESDIR}/${P}-fix-overflows.patch"
96 +)
97 +
98 src_prepare() {
99 default
100 eautoreconf