Commit 5ec6e43e authored by fenrir's avatar fenrir

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.



git-svn-id: file:///var/local/repositories/ffmpeg/trunk@22083 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent f7eea117
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment