mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Fixed a segfault in the DCA decoder with corrupted streams.
It happens when the number of channels defined by DCAContext:acmod is lower than DCAContext:prim_channels. In this case, dca_subsubframe() will call qmf_32_subbands() using s->channel_order_tab[] entries equal to -1. Originally committed as revision 22083 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
4784b0922f
commit
4e06acbde4
@ -1244,6 +1244,10 @@ static int dca_decode_frame(AVCodecContext * avctx,
|
||||
} else
|
||||
s->channel_order_tab = dca_channel_reorder_nolfe[s->amode];
|
||||
|
||||
if (s->prim_channels > 0 &&
|
||||
s->channel_order_tab[s->prim_channels - 1] < 0)
|
||||
return -1;
|
||||
|
||||
if(avctx->request_channels == 2 && s->prim_channels > 2) {
|
||||
channels = 2;
|
||||
s->output = DCA_STEREO;
|
||||
|
Loading…
Reference in New Issue
Block a user