1 |
aballier 08/08/22 08:55:31 |
2 |
|
3 |
Modified: series |
4 |
Added: 340_all_TTA-potential-0-divider.patch |
5 |
350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch |
6 |
360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch |
7 |
370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch |
8 |
380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch |
9 |
390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch |
10 |
400_all_Fix-previous-commits.patch |
11 |
Log: |
12 |
import upstream's tta fixes |
13 |
|
14 |
Revision Changes Path |
15 |
1.2 src/patchsets/vlc/0.8.6i/series |
16 |
|
17 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/series?rev=1.2&view=markup |
18 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/series?rev=1.2&content-type=text/plain |
19 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/series?r1=1.1&r2=1.2 |
20 |
|
21 |
Index: series |
22 |
=================================================================== |
23 |
RCS file: /var/cvsroot/gentoo/src/patchsets/vlc/0.8.6i/series,v |
24 |
retrieving revision 1.1 |
25 |
retrieving revision 1.2 |
26 |
diff -u -r1.1 -r1.2 |
27 |
--- series 13 Jul 2008 09:59:22 -0000 1.1 |
28 |
+++ series 22 Aug 2008 08:55:31 -0000 1.2 |
29 |
@@ -9,3 +9,10 @@ |
30 |
250_all_livepic.patch |
31 |
290_all_altivec.patch |
32 |
330_all_libdca.patch |
33 |
+340_all_TTA-potential-0-divider.patch |
34 |
+350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch |
35 |
+360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch |
36 |
+370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch |
37 |
+380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch |
38 |
+390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch |
39 |
+400_all_Fix-previous-commits.patch |
40 |
|
41 |
|
42 |
|
43 |
1.1 src/patchsets/vlc/0.8.6i/340_all_TTA-potential-0-divider.patch |
44 |
|
45 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/340_all_TTA-potential-0-divider.patch?rev=1.1&view=markup |
46 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/340_all_TTA-potential-0-divider.patch?rev=1.1&content-type=text/plain |
47 |
|
48 |
Index: 340_all_TTA-potential-0-divider.patch |
49 |
=================================================================== |
50 |
From c162cadb1a77262c72a181c7514f9d79b5946c46 Mon Sep 17 00:00:00 2001 |
51 |
From: =?utf-8?q?R=C3=A9mi=20Denis-Courmont?= <rdenis@××××××××××××.com> |
52 |
Date: Wed, 20 Aug 2008 23:06:32 +0300 |
53 |
Subject: [PATCH] TTA: potential 0 divider |
54 |
(cherry picked from commit f789b29e0730f8c8e288517d1bd7956a8cfbb214) |
55 |
|
56 |
--- |
57 |
modules/demux/tta.c | 5 +++++ |
58 |
1 files changed, 5 insertions(+), 0 deletions(-) |
59 |
|
60 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
61 |
index e400908..47f83a4 100644 |
62 |
--- a/modules/demux/tta.c |
63 |
+++ b/modules/demux/tta.c |
64 |
@@ -111,6 +111,11 @@ static int Open( vlc_object_t * p_this ) |
65 |
fmt.audio.i_channels = GetWLE( &p_header[6] ); |
66 |
fmt.audio.i_bitspersample = GetWLE( &p_header[8] ); |
67 |
fmt.audio.i_rate = GetDWLE( &p_header[10] ); |
68 |
+ if( fmt.audio.i_rate == 0 ) |
69 |
+ { |
70 |
+ free( p_sys ); |
71 |
+ return VLC_EGENERIC; |
72 |
+ } |
73 |
|
74 |
p_sys->i_datalength = GetDWLE( &p_header[14] ); |
75 |
p_sys->i_framelength = TTA_FRAMETIME * fmt.audio.i_rate; |
76 |
-- |
77 |
1.5.6.5 |
78 |
|
79 |
|
80 |
|
81 |
|
82 |
1.1 src/patchsets/vlc/0.8.6i/350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch |
83 |
|
84 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch?rev=1.1&view=markup |
85 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch?rev=1.1&content-type=text/plain |
86 |
|
87 |
Index: 350_all_Check-malloc-return-value-and-fix-a-memory-leak.patch |
88 |
=================================================================== |
89 |
From f51f8be0233e22114a0bb25ee1fcc9f4656ca5d7 Mon Sep 17 00:00:00 2001 |
90 |
From: =?utf-8?q?R=C3=A9mi=20Denis-Courmont?= <rdenis@××××××××××××.com> |
91 |
Date: Thu, 21 Aug 2008 18:22:01 +0300 |
92 |
Subject: [PATCH] Check malloc return value and fix a memory leak. |
93 |
|
94 |
(cherry picked from commit def276b7faa4b528f6171b7375ab432ee59357a0) |
95 |
|
96 |
Conflicts: |
97 |
|
98 |
modules/demux/tta.c |
99 |
--- |
100 |
modules/demux/tta.c | 29 ++++++++++++++++++++++++++--- |
101 |
1 files changed, 26 insertions(+), 3 deletions(-) |
102 |
|
103 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
104 |
index 47f83a4..a277fff 100644 |
105 |
--- a/modules/demux/tta.c |
106 |
+++ b/modules/demux/tta.c |
107 |
@@ -106,6 +106,9 @@ static int Open( vlc_object_t * p_this ) |
108 |
p_demux->pf_control = Control; |
109 |
p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); |
110 |
|
111 |
+ if( !p_sys ) |
112 |
+ return VLC_EGENERIC; |
113 |
+ |
114 |
/* Read the metadata */ |
115 |
es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'T', 'T', 'A', '1' ) ); |
116 |
fmt.audio.i_channels = GetWLE( &p_header[6] ); |
117 |
@@ -126,8 +129,20 @@ static int Open( vlc_object_t * p_this ) |
118 |
|
119 |
i_seektable_size = sizeof(uint32_t)*p_sys->i_totalframes; |
120 |
p_seektable = (uint8_t *)malloc( i_seektable_size ); |
121 |
+ if( !p_seektable ) |
122 |
+ { |
123 |
+ free( p_sys ); |
124 |
+ return VLC_EGENERIC; |
125 |
+ } |
126 |
+ |
127 |
stream_Read( p_demux->s, p_seektable, i_seektable_size ); |
128 |
- p_sys->pi_seektable = (uint32_t *)malloc(i_seektable_size); |
129 |
+ p_sys->pi_seektable = (uint32_t *)malloc( i_seektable_size ); |
130 |
+ if( !p_sys->pi_seektable ) |
131 |
+ { |
132 |
+ free( p_seektable ); |
133 |
+ free( p_sys ); |
134 |
+ return VLC_EGENERIC; |
135 |
+ } |
136 |
|
137 |
for( i = 0; i < p_sys->i_totalframes; i++ ) |
138 |
p_sys->pi_seektable[i] = GetDWLE( &p_seektable[i*4] ); |
139 |
@@ -137,8 +152,15 @@ static int Open( vlc_object_t * p_this ) |
140 |
/* Store the header and Seektable for avcodec */ |
141 |
fmt.i_extra = 22 + (p_sys->i_totalframes * 4) + 4; |
142 |
fmt.p_extra = malloc( fmt.i_extra ); |
143 |
- memcpy( fmt.p_extra, p_header, 22 ); |
144 |
- memcpy( fmt.p_extra+22, p_seektable, fmt.i_extra -22 ); |
145 |
+ if( !fmt.p_extra ) |
146 |
+ { |
147 |
+ free( p_sys->pi_seektable ); |
148 |
+ free( p_seektable ); |
149 |
+ free( p_sys ); |
150 |
+ return VLC_EGENERIC; |
151 |
+ } |
152 |
+ memcpy( (uint8_t*)fmt.p_extra, p_header, 22 ); |
153 |
+ memcpy( (uint8_t*)fmt.p_extra+22, p_seektable, fmt.i_extra -22 ); |
154 |
|
155 |
p_sys->p_es = es_out_Add( p_demux->out, &fmt ); |
156 |
free( p_seektable ); |
157 |
@@ -167,6 +189,7 @@ static void Close( vlc_object_t * p_this ) |
158 |
demux_t *p_demux = (demux_t*)p_this; |
159 |
demux_sys_t *p_sys = p_demux->p_sys; |
160 |
|
161 |
+ free( p_sys->pi_seektable ); |
162 |
free( p_sys ); |
163 |
} |
164 |
|
165 |
-- |
166 |
1.5.6.5 |
167 |
|
168 |
|
169 |
|
170 |
|
171 |
1.1 src/patchsets/vlc/0.8.6i/360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch |
172 |
|
173 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch?rev=1.1&view=markup |
174 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch?rev=1.1&content-type=text/plain |
175 |
|
176 |
Index: 360_all_Use-VLC_ENOMEM-instead-of-VLC_EGENERIC.patch |
177 |
=================================================================== |
178 |
From 263a064acc3e48ddda9886061177f535aaf7f221 Mon Sep 17 00:00:00 2001 |
179 |
From: =?utf-8?q?R=C3=A9mi=20Denis-Courmont?= <rdenis@××××××××××××.com> |
180 |
Date: Thu, 21 Aug 2008 18:23:55 +0300 |
181 |
Subject: [PATCH] Use VLC_ENOMEM instead of VLC_EGENERIC. |
182 |
|
183 |
(cherry picked from commit c6a78e1b9e0cd1b87783b024f66ee440965053d5) |
184 |
|
185 |
Not cherry-picked: |
186 |
|
187 |
modules/demux/rawvid.c |
188 |
--- |
189 |
modules/demux/tta.c | 8 ++++---- |
190 |
1 files changed, 4 insertions(+), 4 deletions(-) |
191 |
|
192 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
193 |
index a277fff..5d8ff50 100644 |
194 |
--- a/modules/demux/tta.c |
195 |
+++ b/modules/demux/tta.c |
196 |
@@ -107,7 +107,7 @@ static int Open( vlc_object_t * p_this ) |
197 |
p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); |
198 |
|
199 |
if( !p_sys ) |
200 |
- return VLC_EGENERIC; |
201 |
+ return VLC_ENOMEM; |
202 |
|
203 |
/* Read the metadata */ |
204 |
es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'T', 'T', 'A', '1' ) ); |
205 |
@@ -132,7 +132,7 @@ static int Open( vlc_object_t * p_this ) |
206 |
if( !p_seektable ) |
207 |
{ |
208 |
free( p_sys ); |
209 |
- return VLC_EGENERIC; |
210 |
+ return VLC_ENOMEM; |
211 |
} |
212 |
|
213 |
stream_Read( p_demux->s, p_seektable, i_seektable_size ); |
214 |
@@ -141,7 +141,7 @@ static int Open( vlc_object_t * p_this ) |
215 |
{ |
216 |
free( p_seektable ); |
217 |
free( p_sys ); |
218 |
- return VLC_EGENERIC; |
219 |
+ return VLC_ENOMEM; |
220 |
} |
221 |
|
222 |
for( i = 0; i < p_sys->i_totalframes; i++ ) |
223 |
@@ -157,7 +157,7 @@ static int Open( vlc_object_t * p_this ) |
224 |
free( p_sys->pi_seektable ); |
225 |
free( p_seektable ); |
226 |
free( p_sys ); |
227 |
- return VLC_EGENERIC; |
228 |
+ return VLC_ENOMEM; |
229 |
} |
230 |
memcpy( (uint8_t*)fmt.p_extra, p_header, 22 ); |
231 |
memcpy( (uint8_t*)fmt.p_extra+22, p_seektable, fmt.i_extra -22 ); |
232 |
-- |
233 |
1.5.6.5 |
234 |
|
235 |
|
236 |
|
237 |
|
238 |
1.1 src/patchsets/vlc/0.8.6i/370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch |
239 |
|
240 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch?rev=1.1&view=markup |
241 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch?rev=1.1&content-type=text/plain |
242 |
|
243 |
Index: 370_all_TTA-robustify-and-avoid-one-memcpy-allocation.patch |
244 |
=================================================================== |
245 |
From ed46352bb22249c36e3a44ea17ea91b29eed88ff Mon Sep 17 00:00:00 2001 |
246 |
From: =?utf-8?q?R=C3=A9mi=20Denis-Courmont?= <rdenis@××××××××××××.com> |
247 |
Date: Thu, 21 Aug 2008 18:29:09 +0300 |
248 |
Subject: [PATCH] TTA: robustify and avoid one memcpy/allocation |
249 |
|
250 |
(cherry picked from commit db89ea7f1314cb0e1f0c07dfd6a5a3e4c417a63a) |
251 |
|
252 |
Conflicts: |
253 |
|
254 |
modules/demux/tta.c |
255 |
--- |
256 |
modules/demux/tta.c | 69 +++++++++++++++++++++++--------------------------- |
257 |
1 files changed, 32 insertions(+), 37 deletions(-) |
258 |
|
259 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
260 |
index 5d8ff50..9333381 100644 |
261 |
--- a/modules/demux/tta.c |
262 |
+++ b/modules/demux/tta.c |
263 |
@@ -60,8 +60,8 @@ struct demux_sys_t |
264 |
es_out_id_t *p_es; |
265 |
|
266 |
/* */ |
267 |
- int i_totalframes; |
268 |
- int i_currentframe; |
269 |
+ uint32_t i_totalframes; |
270 |
+ uint32_t i_currentframe; |
271 |
uint32_t *pi_seektable; |
272 |
int i_datalength; |
273 |
int i_framelength; |
274 |
@@ -81,8 +81,8 @@ static int Open( vlc_object_t * p_this ) |
275 |
es_format_t fmt; |
276 |
uint8_t *p_peek; |
277 |
uint8_t p_header[22]; |
278 |
- uint8_t *p_seektable; |
279 |
- int i_seektable_size = 0, i; |
280 |
+ uint8_t *p_fullheader; |
281 |
+ int i_seektable_size = 0; |
282 |
//char psz_info[4096]; |
283 |
//module_t *p_id3; |
284 |
|
285 |
@@ -109,16 +109,15 @@ static int Open( vlc_object_t * p_this ) |
286 |
if( !p_sys ) |
287 |
return VLC_ENOMEM; |
288 |
|
289 |
+ p_sys->pi_seektable = NULL; |
290 |
+ |
291 |
/* Read the metadata */ |
292 |
es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'T', 'T', 'A', '1' ) ); |
293 |
fmt.audio.i_channels = GetWLE( &p_header[6] ); |
294 |
fmt.audio.i_bitspersample = GetWLE( &p_header[8] ); |
295 |
fmt.audio.i_rate = GetDWLE( &p_header[10] ); |
296 |
if( fmt.audio.i_rate == 0 ) |
297 |
- { |
298 |
- free( p_sys ); |
299 |
- return VLC_EGENERIC; |
300 |
- } |
301 |
+ goto error; |
302 |
|
303 |
p_sys->i_datalength = GetDWLE( &p_header[14] ); |
304 |
p_sys->i_framelength = TTA_FRAMETIME * fmt.audio.i_rate; |
305 |
@@ -126,44 +125,36 @@ static int Open( vlc_object_t * p_this ) |
306 |
p_sys->i_totalframes = p_sys->i_datalength / p_sys->i_framelength + |
307 |
((p_sys->i_datalength % p_sys->i_framelength) ? 1 : 0); |
308 |
p_sys->i_currentframe = 0; |
309 |
+ if( p_sys->i_totalframes > (1 << 29)) |
310 |
+ goto error; |
311 |
|
312 |
i_seektable_size = sizeof(uint32_t)*p_sys->i_totalframes; |
313 |
- p_seektable = (uint8_t *)malloc( i_seektable_size ); |
314 |
- if( !p_seektable ) |
315 |
- { |
316 |
- free( p_sys ); |
317 |
- return VLC_ENOMEM; |
318 |
- } |
319 |
|
320 |
- stream_Read( p_demux->s, p_seektable, i_seektable_size ); |
321 |
- p_sys->pi_seektable = (uint32_t *)malloc( i_seektable_size ); |
322 |
+ /* Store the header and Seektable for avcodec */ |
323 |
+ fmt.i_extra = 22 + i_seektable_size + 4; |
324 |
+ fmt.p_extra = p_fullheader = malloc( fmt.i_extra ); |
325 |
+ if( !p_fullheader ) |
326 |
+ goto error; |
327 |
+ |
328 |
+ memcpy( p_fullheader, p_header, 22 ); |
329 |
+ p_fullheader += 22; |
330 |
+ if( stream_Read( p_demux->s, p_fullheader, i_seektable_size ) |
331 |
+ != i_seektable_size ) |
332 |
+ goto error; |
333 |
+ |
334 |
+ p_sys->pi_seektable = calloc( p_sys->i_totalframes, sizeof(uint32_t) ); |
335 |
if( !p_sys->pi_seektable ) |
336 |
+ goto error; |
337 |
+ for( uint32_t i = 0; i < p_sys->i_totalframes; i++ ) |
338 |
{ |
339 |
- free( p_seektable ); |
340 |
- free( p_sys ); |
341 |
- return VLC_ENOMEM; |
342 |
+ p_sys->pi_seektable[i] = GetDWLE( p_fullheader ); |
343 |
+ p_fullheader += 4; |
344 |
} |
345 |
|
346 |
- for( i = 0; i < p_sys->i_totalframes; i++ ) |
347 |
- p_sys->pi_seektable[i] = GetDWLE( &p_seektable[i*4] ); |
348 |
- |
349 |
- stream_Read( p_demux->s, NULL, 4 ); /* CRC */ |
350 |
- |
351 |
- /* Store the header and Seektable for avcodec */ |
352 |
- fmt.i_extra = 22 + (p_sys->i_totalframes * 4) + 4; |
353 |
- fmt.p_extra = malloc( fmt.i_extra ); |
354 |
- if( !fmt.p_extra ) |
355 |
- { |
356 |
- free( p_sys->pi_seektable ); |
357 |
- free( p_seektable ); |
358 |
- free( p_sys ); |
359 |
- return VLC_ENOMEM; |
360 |
- } |
361 |
- memcpy( (uint8_t*)fmt.p_extra, p_header, 22 ); |
362 |
- memcpy( (uint8_t*)fmt.p_extra+22, p_seektable, fmt.i_extra -22 ); |
363 |
+ stream_Read( p_demux->s, p_fullheader, 4 ); /* CRC */ |
364 |
+ p_fullheader += 4; |
365 |
|
366 |
p_sys->p_es = es_out_Add( p_demux->out, &fmt ); |
367 |
- free( p_seektable ); |
368 |
p_sys->i_start = stream_Tell( p_demux->s ); |
369 |
|
370 |
#if 0 |
371 |
@@ -179,6 +170,10 @@ static int Open( vlc_object_t * p_this ) |
372 |
p_sys->p_meta = vlc_meta_New(); |
373 |
#endif |
374 |
return VLC_SUCCESS; |
375 |
+error: |
376 |
+ es_format_Clean( &fmt ); |
377 |
+ Close( p_this ); |
378 |
+ return VLC_EGENERIC; |
379 |
} |
380 |
|
381 |
/***************************************************************************** |
382 |
-- |
383 |
1.5.6.5 |
384 |
|
385 |
|
386 |
|
387 |
|
388 |
1.1 src/patchsets/vlc/0.8.6i/380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch |
389 |
|
390 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch?rev=1.1&view=markup |
391 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch?rev=1.1&content-type=text/plain |
392 |
|
393 |
Index: 380_all_TTA-Sanity-check-to-avoid-overflow-and-typo.patch |
394 |
=================================================================== |
395 |
From f4b2033653fedef4912c1e473608ff92fbb6d9fe Mon Sep 17 00:00:00 2001 |
396 |
From: Jean-Baptiste Kempf <jb@××××××××.org> |
397 |
Date: Wed, 20 Aug 2008 13:56:05 -0700 |
398 |
Subject: [PATCH] TTA: Sanity check to avoid overflow and typo |
399 |
MIME-Version: 1.0 |
400 |
Content-Type: text/plain; charset=utf-8 |
401 |
Content-Transfer-Encoding: 8bit |
402 |
|
403 |
i_rate can go up to 2^32-1. |
404 |
If you * 1.044 it is going to not fit in a int (_framelength) |
405 |
(cherry picked from commit d487b81dde82b458dd6ffe6cb73aa798d6b0b855) |
406 |
|
407 |
Signed-off-by: Rémi Denis-Courmont <rdenis@××××××××××××.com> |
408 |
--- |
409 |
modules/demux/tta.c | 8 ++++++-- |
410 |
1 files changed, 6 insertions(+), 2 deletions(-) |
411 |
|
412 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
413 |
index 9333381..4abca25 100644 |
414 |
--- a/modules/demux/tta.c |
415 |
+++ b/modules/demux/tta.c |
416 |
@@ -94,7 +94,7 @@ static int Open( vlc_object_t * p_this ) |
417 |
if( !p_demux->b_force ) return VLC_EGENERIC; |
418 |
|
419 |
/* User forced */ |
420 |
- msg_Err( p_demux, "this doesn't look like a flac stream, " |
421 |
+ msg_Err( p_demux, "this doesn't look like a true-audio stream, " |
422 |
"continuing anyway" ); |
423 |
} |
424 |
|
425 |
@@ -116,8 +116,12 @@ static int Open( vlc_object_t * p_this ) |
426 |
fmt.audio.i_channels = GetWLE( &p_header[6] ); |
427 |
fmt.audio.i_bitspersample = GetWLE( &p_header[8] ); |
428 |
fmt.audio.i_rate = GetDWLE( &p_header[10] ); |
429 |
- if( fmt.audio.i_rate == 0 ) |
430 |
+ if( fmt.audio.i_rate == 0 || /* Avoid divide by 0 */ |
431 |
+ fmt.audio.i_rate > ( 1 << 20 ) /* Avoid i_framelength overflow */ ) |
432 |
+ { |
433 |
+ msg_Warn( p_demux, "Wrong sample rate" ); |
434 |
goto error; |
435 |
+ } |
436 |
|
437 |
p_sys->i_datalength = GetDWLE( &p_header[14] ); |
438 |
p_sys->i_framelength = TTA_FRAMETIME * fmt.audio.i_rate; |
439 |
-- |
440 |
1.5.6.5 |
441 |
|
442 |
|
443 |
|
444 |
|
445 |
1.1 src/patchsets/vlc/0.8.6i/390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch |
446 |
|
447 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch?rev=1.1&view=markup |
448 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch?rev=1.1&content-type=text/plain |
449 |
|
450 |
Index: 390_all_Kill-a-warning-and-put-i_datalength-as-an-uint32_t.patch |
451 |
=================================================================== |
452 |
From edafd8deaea0089e020e10b7255a88a3fc975441 Mon Sep 17 00:00:00 2001 |
453 |
From: Jean-Baptiste Kempf <jb@××××××××.org> |
454 |
Date: Wed, 20 Aug 2008 14:09:27 -0700 |
455 |
Subject: [PATCH] Kill a warning and put i_datalength as an uint32_t |
456 |
MIME-Version: 1.0 |
457 |
Content-Type: text/plain; charset=utf-8 |
458 |
Content-Transfer-Encoding: 8bit |
459 |
|
460 |
(cherry picked from commit 5fff76145c2ad523334cc15432f458f1940ed895) |
461 |
|
462 |
Signed-off-by: Rémi Denis-Courmont <rdenis@××××××××××××.com> |
463 |
--- |
464 |
modules/demux/tta.c | 4 ++-- |
465 |
1 files changed, 2 insertions(+), 2 deletions(-) |
466 |
|
467 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
468 |
index 4abca25..1522854 100644 |
469 |
--- a/modules/demux/tta.c |
470 |
+++ b/modules/demux/tta.c |
471 |
@@ -63,7 +63,7 @@ struct demux_sys_t |
472 |
uint32_t i_totalframes; |
473 |
uint32_t i_currentframe; |
474 |
uint32_t *pi_seektable; |
475 |
- int i_datalength; |
476 |
+ uint32_t i_datalength; |
477 |
int i_framelength; |
478 |
|
479 |
/* */ |
480 |
@@ -248,7 +248,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) |
481 |
if( i64 > 0 ) |
482 |
{ |
483 |
int64_t tmp = 0; |
484 |
- int i; |
485 |
+ uint32_t i; |
486 |
for( i=0; i < p_sys->i_totalframes && tmp+p_sys->pi_seektable[i] < i64; i++) |
487 |
{ |
488 |
tmp += p_sys->pi_seektable[i]; |
489 |
-- |
490 |
1.5.6.5 |
491 |
|
492 |
|
493 |
|
494 |
|
495 |
1.1 src/patchsets/vlc/0.8.6i/400_all_Fix-previous-commits.patch |
496 |
|
497 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/400_all_Fix-previous-commits.patch?rev=1.1&view=markup |
498 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/vlc/0.8.6i/400_all_Fix-previous-commits.patch?rev=1.1&content-type=text/plain |
499 |
|
500 |
Index: 400_all_Fix-previous-commits.patch |
501 |
=================================================================== |
502 |
From cf8158787e1442a4adad7250edbb30779cb18442 Mon Sep 17 00:00:00 2001 |
503 |
From: =?utf-8?q?R=C3=A9mi=20Denis-Courmont?= <rdenis@××××××××××××.com> |
504 |
Date: Thu, 21 Aug 2008 18:37:52 +0300 |
505 |
Subject: [PATCH] Fix previous commits |
506 |
|
507 |
--- |
508 |
modules/demux/tta.c | 3 ++- |
509 |
1 files changed, 2 insertions(+), 1 deletions(-) |
510 |
|
511 |
diff --git a/modules/demux/tta.c b/modules/demux/tta.c |
512 |
index 1522854..eede5bb 100644 |
513 |
--- a/modules/demux/tta.c |
514 |
+++ b/modules/demux/tta.c |
515 |
@@ -85,6 +85,7 @@ static int Open( vlc_object_t * p_this ) |
516 |
int i_seektable_size = 0; |
517 |
//char psz_info[4096]; |
518 |
//module_t *p_id3; |
519 |
+ uint32_t i; |
520 |
|
521 |
if( stream_Peek( p_demux->s, &p_peek, 4 ) < 4 ) |
522 |
return VLC_EGENERIC; |
523 |
@@ -149,7 +150,7 @@ static int Open( vlc_object_t * p_this ) |
524 |
p_sys->pi_seektable = calloc( p_sys->i_totalframes, sizeof(uint32_t) ); |
525 |
if( !p_sys->pi_seektable ) |
526 |
goto error; |
527 |
- for( uint32_t i = 0; i < p_sys->i_totalframes; i++ ) |
528 |
+ for( i = 0; i < p_sys->i_totalframes; i++ ) |
529 |
{ |
530 |
p_sys->pi_seektable[i] = GetDWLE( p_fullheader ); |
531 |
p_fullheader += 4; |
532 |
-- |
533 |
1.5.6.5 |