Mercurial > libavcodec.hg
changeset 9912:9502108caadf libavcodec
mjpegdec: check that the coded dc_index and ac_index have a valid associated VLC table.
Removes some disabled dc_index/ac_index checking code that seems to have had
some undocumented issues and should not really be necessary anymore now.
Fixes from issue 1240 the files mjpeg/smclockmjpeg.avi.1.10 and mjpeg/smclockmjpeg.avi.1.171.
author | reimar |
---|---|
date | Sat, 04 Jul 2009 12:54:36 +0000 |
parents | 14edbbff0f25 |
children | b73796e93571 |
files | mjpegdec.c |
diffstat | 1 files changed, 2 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/mjpegdec.c Sat Jul 04 07:46:58 2009 +0000 +++ b/mjpegdec.c Sat Jul 04 12:54:36 2009 +0000 @@ -922,24 +922,8 @@ if (s->dc_index[i] < 0 || s->ac_index[i] < 0 || s->dc_index[i] >= 4 || s->ac_index[i] >= 4) goto out_of_range; -#if 0 //buggy - switch(s->start_code) - { - case SOF0: - if (dc_index[i] > 1 || ac_index[i] > 1) - goto out_of_range; - break; - case SOF1: - case SOF2: - if (dc_index[i] > 3 || ac_index[i] > 3) - goto out_of_range; - break; - case SOF3: - if (dc_index[i] > 3 || ac_index[i] != 0) - goto out_of_range; - break; - } -#endif + if (!s->vlcs[0][s->dc_index[i]].table || !s->vlcs[1][s->ac_index[i]].table) + goto out_of_range; } predictor= get_bits(&s->gb, 8); /* JPEG Ss / lossless JPEG predictor /JPEG-LS NEAR */