diff options
-rw-r--r-- | libavcodec/iff.c | 6 |
1 files changed, 2 insertions, 4 deletions
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 ); } |