Fix undefined expressions that use multiple calls to get_bits().

Because the order of evaluation of subexpressions is undefined, two
get_bits() calls may not be part of the same expression.

See also r24902.

Originally committed as revision 24906 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Alex Converse
2010-08-24 16:10:25 +00:00
parent 37b9706123
commit 4c399dc82b
2 changed files with 4 additions and 3 deletions

View File

@@ -1027,7 +1027,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
if(8*len + get_bits_count(&s->gb) > s->gb.size_in_bits)
return -1;
id = (get_bits(&s->gb, 16) << 16) | get_bits(&s->gb, 16);
id = get_bits_long(&s->gb, 32);
id = av_be2ne32(id);
len -= 6;
@@ -1134,7 +1134,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
/* Apple MJPEG-A */
if ((s->start_code == APP1) && (len > (0x28 - 8)))
{
id = (get_bits(&s->gb, 16) << 16) | get_bits(&s->gb, 16);
id = get_bits_long(&s->gb, 32);
id = av_be2ne32(id);
len -= 4;
if (id == AV_RL32("mjpg")) /* Apple MJPEG-A */