From 9dc14fd3f029c2598e69ada1936345ae314f315f Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 30 May 2012 07:50:32 +0000 Subject: iff: check if there is extradata Fixes #1368. Signed-off-by: Paul B Mahol (cherry picked from commit 8f61526978697e51d3b9e61ea84daf13c42717af) Signed-off-by: Michael Niedermayer --- libavcodec/iff.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libavcodec') diff --git a/libavcodec/iff.c b/libavcodec/iff.c index 8946bf9858..90cafbd370 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -316,7 +316,12 @@ static av_cold int decode_init(AVCodecContext *avctx) int err; if (avctx->bits_per_coded_sample <= 8) { - int palette_size = avctx->extradata_size - AV_RB16(avctx->extradata); + int palette_size; + + if (avctx->extradata_size >= 2) + palette_size = avctx->extradata_size - AV_RB16(avctx->extradata); + else + palette_size = 0; avctx->pix_fmt = (avctx->bits_per_coded_sample < 8) || (avctx->extradata_size >= 2 && palette_size) ? PIX_FMT_PAL8 : PIX_FMT_GRAY8; } else if (avctx->bits_per_coded_sample <= 32) { -- cgit v1.2.3