Merge pull request #2500 from pullmoll/faad2
faad2: fix crash in icecat/firefox
This commit is contained in:
commit
12a92d73de
|
@ -0,0 +1,51 @@
|
|||
Since there are reports of crashes in libfaad2 when called from
|
||||
firefox and icecat in the function ps_decode(), this is a try
|
||||
to reduce the stack footprint of faad2 decoding by making the
|
||||
main arrays X_left[][] and X_right[][] use static __thread storage.
|
||||
|
||||
--- libfaad/sbr_dec.c 2009-01-26 23:32:31.000000000 +0100
|
||||
+++ libfaad/sbr_dec.c 2015-09-11 12:44:28.305989011 +0200
|
||||
@@ -602,8 +602,12 @@
|
||||
uint8_t l, k;
|
||||
uint8_t dont_process = 0;
|
||||
uint8_t ret = 0;
|
||||
- ALIGN qmf_t X_left[38][64] = {{0}};
|
||||
- ALIGN qmf_t X_right[38][64] = {{0}}; /* must set this to 0 */
|
||||
+ /* 2015-09-11 jbu: make static to reduce stack footprint */
|
||||
+ static __thread ALIGN qmf_t X_left[38][64];
|
||||
+ static __thread ALIGN qmf_t X_right[38][64];
|
||||
+ /* must set this to 0 */
|
||||
+ memset(X_left, 0, sizeof(X_left));
|
||||
+ memset(X_right, 0, sizeof(X_right));
|
||||
|
||||
if (sbr == NULL)
|
||||
return 20;
|
||||
--- libfaad/ps_dec.c 2009-01-26 23:32:31.000000000 +0100
|
||||
+++ libfaad/ps_dec.c 2015-09-11 13:02:37.898985783 +0200
|
||||
@@ -1039,10 +1039,10 @@
|
||||
const complex_t *Phi_Fract_SubQmf;
|
||||
uint8_t temp_delay_ser[NO_ALLPASS_LINKS];
|
||||
real_t P_SmoothPeakDecayDiffNrg, nrg;
|
||||
- real_t P[32][34];
|
||||
- real_t G_TransientRatio[32][34] = {{0}};
|
||||
+ static __thread real_t P[32][34];
|
||||
+ static __thread real_t G_TransientRatio[32][34];
|
||||
complex_t inputLeft;
|
||||
-
|
||||
+ memset(G_TransientRatio, 0, sizeof(G_TransientRatio));
|
||||
|
||||
/* chose hybrid filterbank: 20 or 34 band case */
|
||||
if (ps->use34hybrid_bands)
|
||||
@@ -1963,8 +1963,10 @@
|
||||
/* main Parametric Stereo decoding function */
|
||||
uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64])
|
||||
{
|
||||
- qmf_t X_hybrid_left[32][32] = {{0}};
|
||||
- qmf_t X_hybrid_right[32][32] = {{0}};
|
||||
+ static __thread qmf_t X_hybrid_left[32][32];
|
||||
+ static __thread qmf_t X_hybrid_right[32][32];
|
||||
+ memset(X_hybrid_left, 0, sizeof(X_hybrid_left));
|
||||
+ memset(X_hybrid_right, 0, sizeof(X_hybrid_right));
|
||||
|
||||
/* delta decoding of the bitstream data */
|
||||
ps_data_decode(ps);
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'faad2'
|
||||
pkgname=faad2
|
||||
version=2.7
|
||||
revision=7
|
||||
revision=8
|
||||
build_style=gnu-configure
|
||||
make_install_args="manmdir=/usr/share/man/man1"
|
||||
short_desc="AAC decoding library"
|
||||
|
|
Loading…
Reference in New Issue