Mercurial > libavcodec.hg
changeset 12411:7c9d711a4201 libavcodec
msmpeg4v1: fix undefined behaviour in msmpeg4_decode_picture_header()
Because the order of evaluation of subexpressions is undefined, two
get_bits() calls may not be part of the same expression. In this
specific case, using get_bits_long() is simpler.
This fixes msmpeg4v1 decoding with armcc.
author | mru |
---|---|
date | Tue, 24 Aug 2010 15:40:57 +0000 |
parents | 7cf900245fce |
children | b31e6ace12f6 |
files | msmpeg4.c |
diffstat | 1 files changed, 1 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/msmpeg4.c Tue Aug 24 15:21:27 2010 +0000 +++ b/msmpeg4.c Tue Aug 24 15:40:57 2010 +0000 @@ -1395,8 +1395,7 @@ #endif if(s->msmpeg4_version==1){ - int start_code; - start_code = (get_bits(&s->gb, 16)<<16) | get_bits(&s->gb, 16); + int start_code = get_bits_long(&s->gb, 32); if(start_code!=0x00000100){ av_log(s->avctx, AV_LOG_ERROR, "invalid startcode\n"); return -1;