Mercurial > libavcodec.hg
diff ac3dec.c @ 8279:6c2dcc1410bb libavcodec
ac3: detect dba errors and prevent writing past end of array
author | jbr |
---|---|
date | Mon, 08 Dec 2008 03:13:20 +0000 |
parents | e2ef97f0ab4b |
children | 63aba08af550 |
line wrap: on
line diff
--- a/ac3dec.c Sun Dec 07 16:30:08 2008 +0000 +++ b/ac3dec.c Mon Dec 08 03:13:20 2008 +0000 @@ -1133,12 +1133,15 @@ if(bit_alloc_stages[ch] > 1) { /* Compute excitation function, Compute masking curve, and Apply delta bit allocation */ - ff_ac3_bit_alloc_calc_mask(&s->bit_alloc_params, s->band_psd[ch], + if (ff_ac3_bit_alloc_calc_mask(&s->bit_alloc_params, s->band_psd[ch], s->start_freq[ch], s->end_freq[ch], s->fast_gain[ch], (ch == s->lfe_ch), s->dba_mode[ch], s->dba_nsegs[ch], s->dba_offsets[ch], s->dba_lengths[ch], - s->dba_values[ch], s->mask[ch]); + s->dba_values[ch], s->mask[ch])) { + av_log(s->avctx, AV_LOG_ERROR, "error in bit allocation\n"); + return -1; + } } if(bit_alloc_stages[ch] > 0) { /* Compute bit allocation */