Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/alsa-utils/files/, media-sound/alsa-utils/
Date: Sat, 14 Sep 2019 01:28:24
Message-Id: 1568424327.9678a57328cc2064f340bdcbd69bf4bf01554e29.mattst88@gentoo
1 commit: 9678a57328cc2064f340bdcbd69bf4bf01554e29
2 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
3 AuthorDate: Sat Sep 14 01:25:24 2019 +0000
4 Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
5 CommitDate: Sat Sep 14 01:25:27 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9678a573
7
8 media-sound/alsa-utils: Add patch to fix tests
9
10 Closes: https://bugs.gentoo.org/681652
11 Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
12
13 media-sound/alsa-utils/alsa-utils-1.1.9.ebuild | 1 +
14 ...fix-invalid-comparison-of-64-bit-storage-.patch | 249 +++++++++++++++++++++
15 2 files changed, 250 insertions(+)
16
17 diff --git a/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild b/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild
18 index bfb1938f52b..e6ea03b67b5 100644
19 --- a/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild
20 +++ b/media-sound/alsa-utils/alsa-utils-1.1.9.ebuild
21 @@ -25,6 +25,7 @@ BDEPEND="virtual/pkgconfig"
22
23 PATCHES=(
24 "${FILESDIR}"/${PN}-1.1.8-missing_header.patch
25 + "${FILESDIR}"/${P}-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch
26 )
27
28 src_configure() {
29
30 diff --git a/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch b/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch
31 new file mode 100644
32 index 00000000000..65435839973
33 --- /dev/null
34 +++ b/media-sound/alsa-utils/files/alsa-utils-1.1.9-axfer-test-fix-invalid-comparison-of-64-bit-storage-.patch
35 @@ -0,0 +1,249 @@
36 +From fbb222c9bccb407750cea61e3bb6285cb8c1b330 Mon Sep 17 00:00:00 2001
37 +From: Takashi Sakamoto <o-takashi@××××××××××.jp>
38 +Date: Sun, 28 Jul 2019 13:48:50 +0900
39 +Subject: [PATCH] axfer: test: fix invalid comparison of 64 bit storage in
40 + ILP32 data type
41 +
42 +In system V ABIs with ILP32 data model, bit shift for '1ul' can brings
43 +undefined behaviour when the calculation result is over 32 bit width.
44 +
45 +This commit fixes the bug.
46 +
47 +Reported-by: Rolf Eike Beer <eike@×××××××.de>
48 +Reference: https://bugs.gentoo.org/681652
49 +Reference: https://github.com/alsa-project/alsa-utils/issues/23
50 +Signed-off-by: Takashi Sakamoto <o-takashi@××××××××××.jp>
51 +Signed-off-by: Takashi Iwai <tiwai@××××.de>
52 +---
53 + axfer/test/container-test.c | 142 ++++++++++++++++++------------------
54 + axfer/test/generator.c | 4 +-
55 + axfer/test/mapper-test.c | 24 +++---
56 + 3 files changed, 85 insertions(+), 85 deletions(-)
57 +
58 +diff --git a/axfer/test/container-test.c b/axfer/test/container-test.c
59 +index 0e2e6e9..9b30ae3 100644
60 +--- a/axfer/test/container-test.c
61 ++++ b/axfer/test/container-test.c
62 +@@ -172,82 +172,82 @@ int main(int argc, const char *argv[])
63 + {
64 + static const uint64_t sample_format_masks[] = {
65 + [CONTAINER_FORMAT_RIFF_WAVE] =
66 +- (1ul << SND_PCM_FORMAT_U8) |
67 +- (1ul << SND_PCM_FORMAT_S16_LE) |
68 +- (1ul << SND_PCM_FORMAT_S16_BE) |
69 +- (1ul << SND_PCM_FORMAT_S24_LE) |
70 +- (1ul << SND_PCM_FORMAT_S24_BE) |
71 +- (1ul << SND_PCM_FORMAT_S32_LE) |
72 +- (1ul << SND_PCM_FORMAT_S32_BE) |
73 +- (1ul << SND_PCM_FORMAT_FLOAT_LE) |
74 +- (1ul << SND_PCM_FORMAT_FLOAT_BE) |
75 +- (1ul << SND_PCM_FORMAT_FLOAT64_LE) |
76 +- (1ul << SND_PCM_FORMAT_FLOAT64_BE) |
77 +- (1ul << SND_PCM_FORMAT_MU_LAW) |
78 +- (1ul << SND_PCM_FORMAT_A_LAW) |
79 +- (1ul << SND_PCM_FORMAT_S24_3LE) |
80 +- (1ul << SND_PCM_FORMAT_S24_3BE) |
81 +- (1ul << SND_PCM_FORMAT_S20_3LE) |
82 +- (1ul << SND_PCM_FORMAT_S20_3BE) |
83 +- (1ul << SND_PCM_FORMAT_S18_3LE) |
84 +- (1ul << SND_PCM_FORMAT_S18_3BE),
85 ++ (1ull << SND_PCM_FORMAT_U8) |
86 ++ (1ull << SND_PCM_FORMAT_S16_LE) |
87 ++ (1ull << SND_PCM_FORMAT_S16_BE) |
88 ++ (1ull << SND_PCM_FORMAT_S24_LE) |
89 ++ (1ull << SND_PCM_FORMAT_S24_BE) |
90 ++ (1ull << SND_PCM_FORMAT_S32_LE) |
91 ++ (1ull << SND_PCM_FORMAT_S32_BE) |
92 ++ (1ull << SND_PCM_FORMAT_FLOAT_LE) |
93 ++ (1ull << SND_PCM_FORMAT_FLOAT_BE) |
94 ++ (1ull << SND_PCM_FORMAT_FLOAT64_LE) |
95 ++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) |
96 ++ (1ull << SND_PCM_FORMAT_MU_LAW) |
97 ++ (1ull << SND_PCM_FORMAT_A_LAW) |
98 ++ (1ull << SND_PCM_FORMAT_S24_3LE) |
99 ++ (1ull << SND_PCM_FORMAT_S24_3BE) |
100 ++ (1ull << SND_PCM_FORMAT_S20_3LE) |
101 ++ (1ull << SND_PCM_FORMAT_S20_3BE) |
102 ++ (1ull << SND_PCM_FORMAT_S18_3LE) |
103 ++ (1ull << SND_PCM_FORMAT_S18_3BE),
104 + [CONTAINER_FORMAT_AU] =
105 +- (1ul << SND_PCM_FORMAT_S8) |
106 +- (1ul << SND_PCM_FORMAT_S16_BE) |
107 +- (1ul << SND_PCM_FORMAT_S32_BE) |
108 +- (1ul << SND_PCM_FORMAT_FLOAT_BE) |
109 +- (1ul << SND_PCM_FORMAT_FLOAT64_BE) |
110 +- (1ul << SND_PCM_FORMAT_MU_LAW) |
111 +- (1ul << SND_PCM_FORMAT_A_LAW),
112 ++ (1ull << SND_PCM_FORMAT_S8) |
113 ++ (1ull << SND_PCM_FORMAT_S16_BE) |
114 ++ (1ull << SND_PCM_FORMAT_S32_BE) |
115 ++ (1ull << SND_PCM_FORMAT_FLOAT_BE) |
116 ++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) |
117 ++ (1ull << SND_PCM_FORMAT_MU_LAW) |
118 ++ (1ull << SND_PCM_FORMAT_A_LAW),
119 + [CONTAINER_FORMAT_VOC] =
120 +- (1ul << SND_PCM_FORMAT_U8) |
121 +- (1ul << SND_PCM_FORMAT_S16_LE) |
122 +- (1ul << SND_PCM_FORMAT_MU_LAW) |
123 +- (1ul << SND_PCM_FORMAT_A_LAW),
124 ++ (1ull << SND_PCM_FORMAT_U8) |
125 ++ (1ull << SND_PCM_FORMAT_S16_LE) |
126 ++ (1ull << SND_PCM_FORMAT_MU_LAW) |
127 ++ (1ull << SND_PCM_FORMAT_A_LAW),
128 + [CONTAINER_FORMAT_RAW] =
129 +- (1ul << SND_PCM_FORMAT_S8) |
130 +- (1ul << SND_PCM_FORMAT_U8) |
131 +- (1ul << SND_PCM_FORMAT_S16_LE) |
132 +- (1ul << SND_PCM_FORMAT_S16_BE) |
133 +- (1ul << SND_PCM_FORMAT_U16_LE) |
134 +- (1ul << SND_PCM_FORMAT_U16_BE) |
135 +- (1ul << SND_PCM_FORMAT_S24_LE) |
136 +- (1ul << SND_PCM_FORMAT_S24_BE) |
137 +- (1ul << SND_PCM_FORMAT_U24_LE) |
138 +- (1ul << SND_PCM_FORMAT_U24_BE) |
139 +- (1ul << SND_PCM_FORMAT_S32_LE) |
140 +- (1ul << SND_PCM_FORMAT_S32_BE) |
141 +- (1ul << SND_PCM_FORMAT_U32_LE) |
142 +- (1ul << SND_PCM_FORMAT_U32_BE) |
143 +- (1ul << SND_PCM_FORMAT_FLOAT_LE) |
144 +- (1ul << SND_PCM_FORMAT_FLOAT_BE) |
145 +- (1ul << SND_PCM_FORMAT_FLOAT64_LE) |
146 +- (1ul << SND_PCM_FORMAT_FLOAT64_BE) |
147 +- (1ul << SND_PCM_FORMAT_IEC958_SUBFRAME_LE) |
148 +- (1ul << SND_PCM_FORMAT_IEC958_SUBFRAME_BE) |
149 +- (1ul << SND_PCM_FORMAT_MU_LAW) |
150 +- (1ul << SND_PCM_FORMAT_A_LAW) |
151 +- (1ul << SND_PCM_FORMAT_S24_3LE) |
152 +- (1ul << SND_PCM_FORMAT_S24_3BE) |
153 +- (1ul << SND_PCM_FORMAT_U24_3LE) |
154 +- (1ul << SND_PCM_FORMAT_U24_3BE) |
155 +- (1ul << SND_PCM_FORMAT_S20_3LE) |
156 +- (1ul << SND_PCM_FORMAT_S20_3BE) |
157 +- (1ul << SND_PCM_FORMAT_U20_3LE) |
158 +- (1ul << SND_PCM_FORMAT_U20_3BE) |
159 +- (1ul << SND_PCM_FORMAT_S18_3LE) |
160 +- (1ul << SND_PCM_FORMAT_S18_3BE) |
161 +- (1ul << SND_PCM_FORMAT_U18_3LE) |
162 +- (1ul << SND_PCM_FORMAT_U18_3BE) |
163 +- (1ul << SND_PCM_FORMAT_DSD_U8) |
164 +- (1ul << SND_PCM_FORMAT_DSD_U16_LE) |
165 +- (1ul << SND_PCM_FORMAT_DSD_U32_LE) |
166 +- (1ul << SND_PCM_FORMAT_DSD_U16_BE) |
167 +- (1ul << SND_PCM_FORMAT_DSD_U32_BE),
168 ++ (1ull << SND_PCM_FORMAT_S8) |
169 ++ (1ull << SND_PCM_FORMAT_U8) |
170 ++ (1ull << SND_PCM_FORMAT_S16_LE) |
171 ++ (1ull << SND_PCM_FORMAT_S16_BE) |
172 ++ (1ull << SND_PCM_FORMAT_U16_LE) |
173 ++ (1ull << SND_PCM_FORMAT_U16_BE) |
174 ++ (1ull << SND_PCM_FORMAT_S24_LE) |
175 ++ (1ull << SND_PCM_FORMAT_S24_BE) |
176 ++ (1ull << SND_PCM_FORMAT_U24_LE) |
177 ++ (1ull << SND_PCM_FORMAT_U24_BE) |
178 ++ (1ull << SND_PCM_FORMAT_S32_LE) |
179 ++ (1ull << SND_PCM_FORMAT_S32_BE) |
180 ++ (1ull << SND_PCM_FORMAT_U32_LE) |
181 ++ (1ull << SND_PCM_FORMAT_U32_BE) |
182 ++ (1ull << SND_PCM_FORMAT_FLOAT_LE) |
183 ++ (1ull << SND_PCM_FORMAT_FLOAT_BE) |
184 ++ (1ull << SND_PCM_FORMAT_FLOAT64_LE) |
185 ++ (1ull << SND_PCM_FORMAT_FLOAT64_BE) |
186 ++ (1ull << SND_PCM_FORMAT_IEC958_SUBFRAME_LE) |
187 ++ (1ull << SND_PCM_FORMAT_IEC958_SUBFRAME_BE) |
188 ++ (1ull << SND_PCM_FORMAT_MU_LAW) |
189 ++ (1ull << SND_PCM_FORMAT_A_LAW) |
190 ++ (1ull << SND_PCM_FORMAT_S24_3LE) |
191 ++ (1ull << SND_PCM_FORMAT_S24_3BE) |
192 ++ (1ull << SND_PCM_FORMAT_U24_3LE) |
193 ++ (1ull << SND_PCM_FORMAT_U24_3BE) |
194 ++ (1ull << SND_PCM_FORMAT_S20_3LE) |
195 ++ (1ull << SND_PCM_FORMAT_S20_3BE) |
196 ++ (1ull << SND_PCM_FORMAT_U20_3LE) |
197 ++ (1ull << SND_PCM_FORMAT_U20_3BE) |
198 ++ (1ull << SND_PCM_FORMAT_S18_3LE) |
199 ++ (1ull << SND_PCM_FORMAT_S18_3BE) |
200 ++ (1ull << SND_PCM_FORMAT_U18_3LE) |
201 ++ (1ull << SND_PCM_FORMAT_U18_3BE) |
202 ++ (1ull << SND_PCM_FORMAT_DSD_U8) |
203 ++ (1ull << SND_PCM_FORMAT_DSD_U16_LE) |
204 ++ (1ull << SND_PCM_FORMAT_DSD_U32_LE) |
205 ++ (1ull << SND_PCM_FORMAT_DSD_U16_BE) |
206 ++ (1ull << SND_PCM_FORMAT_DSD_U32_BE),
207 + };
208 + static const uint64_t access_mask =
209 +- (1ul << SND_PCM_ACCESS_MMAP_INTERLEAVED) |
210 +- (1ul << SND_PCM_ACCESS_RW_INTERLEAVED);
211 ++ (1ull << SND_PCM_ACCESS_MMAP_INTERLEAVED) |
212 ++ (1ull << SND_PCM_ACCESS_RW_INTERLEAVED);
213 + struct test_generator gen = {0};
214 + struct container_trial *trial;
215 + int i;
216 +diff --git a/axfer/test/generator.c b/axfer/test/generator.c
217 +index cdea2c9..bde8c5f 100644
218 +--- a/axfer/test/generator.c
219 ++++ b/axfer/test/generator.c
220 +@@ -220,7 +220,7 @@ static int test_sample_format(struct test_generator *gen,
221 + int err = 0;
222 +
223 + for (i = 0; i <= SND_PCM_FORMAT_LAST; ++i) {
224 +- if (!((1ul << i) & gen->sample_format_mask))
225 ++ if (!((1ull << i) & gen->sample_format_mask))
226 + continue;
227 +
228 + err = test_samples_per_frame(gen, access, i);
229 +@@ -237,7 +237,7 @@ static int test_access(struct test_generator *gen)
230 + int err = 0;
231 +
232 + for (i = 0; i <= SND_PCM_ACCESS_LAST; ++i) {
233 +- if (!((1ul << i) & gen->access_mask))
234 ++ if (!((1ull << i) & gen->access_mask))
235 + continue;
236 +
237 + err = test_sample_format(gen, i);
238 +diff --git a/axfer/test/mapper-test.c b/axfer/test/mapper-test.c
239 +index 6b24d54..f0376c7 100644
240 +--- a/axfer/test/mapper-test.c
241 ++++ b/axfer/test/mapper-test.c
242 +@@ -396,13 +396,13 @@ int main(int argc, const char *argv[])
243 + {
244 + // Test 8/16/18/20/24/32/64 bytes per sample.
245 + static const uint64_t sample_format_mask =
246 +- (1ul << SND_PCM_FORMAT_U8) |
247 +- (1ul << SND_PCM_FORMAT_S16_LE) |
248 +- (1ul << SND_PCM_FORMAT_S18_3LE) |
249 +- (1ul << SND_PCM_FORMAT_S20_3LE) |
250 +- (1ul << SND_PCM_FORMAT_S24_LE) |
251 +- (1ul << SND_PCM_FORMAT_S32_LE) |
252 +- (1ul << SND_PCM_FORMAT_FLOAT64_LE);
253 ++ (1ull << SND_PCM_FORMAT_U8) |
254 ++ (1ull << SND_PCM_FORMAT_S16_LE) |
255 ++ (1ull << SND_PCM_FORMAT_S18_3LE) |
256 ++ (1ull << SND_PCM_FORMAT_S20_3LE) |
257 ++ (1ull << SND_PCM_FORMAT_S24_LE) |
258 ++ (1ull << SND_PCM_FORMAT_S32_LE) |
259 ++ (1ull << SND_PCM_FORMAT_FLOAT64_LE);
260 + uint64_t access_mask;
261 + struct test_generator gen = {0};
262 + struct mapper_trial *trial;
263 +@@ -451,13 +451,13 @@ int main(int argc, const char *argv[])
264 + goto end;
265 + }
266 +
267 +- access_mask = 1ul << access;
268 ++ access_mask = 1ull << access;
269 + verbose = true;
270 + } else {
271 +- access_mask = (1ul << SND_PCM_ACCESS_MMAP_INTERLEAVED) |
272 +- (1ul << SND_PCM_ACCESS_MMAP_NONINTERLEAVED) |
273 +- (1ul << SND_PCM_ACCESS_RW_INTERLEAVED) |
274 +- (1ul << SND_PCM_ACCESS_RW_NONINTERLEAVED);
275 ++ access_mask = (1ull << SND_PCM_ACCESS_MMAP_INTERLEAVED) |
276 ++ (1ull << SND_PCM_ACCESS_MMAP_NONINTERLEAVED) |
277 ++ (1ull << SND_PCM_ACCESS_RW_INTERLEAVED) |
278 ++ (1ull << SND_PCM_ACCESS_RW_NONINTERLEAVED);
279 + verbose = false;
280 + }
281 +
282 +--
283 +2.21.0
284 +