|
|
@@ -169,6 +169,12 @@ static int pcx_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, |
|
|
} else if (nplanes == 1 && bits_per_pixel == 8) { |
|
|
} else if (nplanes == 1 && bits_per_pixel == 8) { |
|
|
const uint8_t *palstart = bufstart + buf_size - 769; |
|
|
const uint8_t *palstart = bufstart + buf_size - 769; |
|
|
|
|
|
|
|
|
|
|
|
if (buf_size < 769) { |
|
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "File is too short\n"); |
|
|
|
|
|
ret = buf_size; |
|
|
|
|
|
goto end; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
for (y = 0; y < h; y++, ptr += stride) { |
|
|
for (y = 0; y < h; y++, ptr += stride) { |
|
|
buf = pcx_rle_decode(buf, buf_end, |
|
|
buf = pcx_rle_decode(buf, buf_end, |
|
|
scanline, bytes_per_scanline, compressed); |
|
|
scanline, bytes_per_scanline, compressed); |
|
|
|