From ebcf7c3227906382205141beb2d0467f245472d1 Mon Sep 17 00:00:00 2001 From: Sebastian Vater Date: Thu, 13 May 2010 15:33:36 +0000 Subject: Handle palette underflows, fill remaining space with black (zero) data. Patch by Sebastian Vater . Originally committed as revision 23111 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/iff.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'libavcodec/iff.c') diff --git a/libavcodec/iff.c b/libavcodec/iff.c index 2b3648bc8a..019af4dbfe 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -123,10 +123,8 @@ int ff_cmap_read_palette(AVCodecContext *avctx, uint32_t *pal) } count = 1 << avctx->bits_per_coded_sample; - if (avctx->extradata_size < count * 3) { - av_log(avctx, AV_LOG_ERROR, "palette data underflow\n"); - return AVERROR_INVALIDDATA; - } + // If extradata is smaller than actually needed, fill the remaining with black. + count = FFMIN(avctx->extradata_size / 3, count); for (i=0; i < count; i++) { pal[i] = 0xFF000000 | AV_RB24( avctx->extradata + i*3 ); } -- cgit v1.2.3