Fix nalsize check to avoid an integer overflow that made the check
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 30 Jun 2009 12:11:29 +0000 (12:11 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 30 Jun 2009 12:11:29 +0000 (12:11 +0000)
incorrect for nalsize > INT_MAX - buf_index

Originally committed as revision 19307 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h264.c

index 40ba4eb..9cdac24 100644 (file)
@@ -7505,7 +7505,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
             nalsize = 0;
             for(i = 0; i < h->nal_length_size; i++)
                 nalsize = (nalsize << 8) | buf[buf_index++];
-            if(nalsize <= 1 || (nalsize+buf_index > buf_size)){
+            if(nalsize <= 1 || nalsize > buf_size - buf_index){
                 if(nalsize == 1){
                     buf_index++;
                     continue;