Browse Source

avcodec/iff: decode_delta_j: Check that the number of bytes that will be read are available

This should avoid long loops
related to CID1361958

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.2
Michael Niedermayer 9 years ago
parent
commit
fcdbbbd85a
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      libavcodec/iff.c

+ 2
- 2
libavcodec/iff.c View File

@@ -865,7 +865,7 @@ static void decode_delta_j(uint8_t *dst,
for (g = 0; g < groups; g++) {
offset = bytestream2_get_be16(&gb);

if (bytestream2_get_bytes_left(&gb) < 1)
if (cols * bpp == 0 || bytestream2_get_bytes_left(&gb) < cols * bpp)
return;

if (kludge_j)
@@ -911,7 +911,7 @@ static void decode_delta_j(uint8_t *dst,
for (d = 0; d < bpp; d++) {
unsigned noffset = offset + (r * pitch) + d * planepitch;

if (bytestream2_get_bytes_left(&gb) < 1)
if (!bytes || bytestream2_get_bytes_left(&gb) < bytes)
return;

for (b = 0; b < bytes; b++) {


Loading…
Cancel
Save