correctly handle very large Cinepak frames (courtesy of John Koleszar
authorMike Melanson <mike@multimedia.cx>
Wed, 14 Dec 2005 00:19:01 +0000 (00:19 +0000)
committerMike Melanson <mike@multimedia.cx>
Wed, 14 Dec 2005 00:19:01 +0000 (00:19 +0000)
<jkoleszar@on2.com>)

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

libavcodec/cinepak.c

index d1e1f0ec161f2c787558103018ee8519dff66778..6da011f2a31fb00c904ce0ad999fd03509925cd8 100644 (file)
@@ -325,7 +325,7 @@ static int cinepak_decode (CinepakContext *s)
 
     frame_flags = s->data[0];
     num_strips  = BE_16 (&s->data[8]);
-    encoded_buf_size = BE_16 (&s->data[2]);
+    encoded_buf_size = ((s->data[1] << 16) | BE_16 (&s->data[2]));
     if (encoded_buf_size != s->size)
         sega_film_data = 1;
     if (sega_film_data)