summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/iff.c6
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 );
}