rpza: Fix a buffer size check
authorMartin Storsjö <martin@martin.st>
Sat, 28 Sep 2013 22:24:20 +0000 (01:24 +0300)
committerMartin Storsjö <martin@martin.st>
Sun, 29 Sep 2013 17:02:42 +0000 (20:02 +0300)
We read 2 bytes for 15 out of 16 pixels, therefore we need to
have at least 30 bytes, not 16.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/rpza.c

index 45350a8..ca9f7ea 100644 (file)
@@ -204,7 +204,7 @@ static void rpza_decode_stream(RpzaContext *s)
 
         /* Fill block with 16 colors */
         case 0x00:
-            if (s->size - stream_ptr < 16)
+            if (s->size - stream_ptr < 30)
                 return;
             block_ptr = row_ptr + pixel_ptr;
             for (pixel_y = 0; pixel_y < 4; pixel_y++) {