From e05253bf49e19c601c9d4a872c4f7f985797e163 Mon Sep 17 00:00:00 2001 From: Peter Ross Date: Mon, 12 Mar 2012 10:32:11 +1100 Subject: [PATCH] iff: do not decode unsupported pbms with ham decoder This prevents the segfault reported by ticket #1054 --- libavcodec/iff.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/iff.c b/libavcodec/iff.c index fdeba14fa7..925d92815a 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -638,12 +638,15 @@ static int decode_frame_byterun1(AVCodecContext *avctx, uint8_t *row = &s->frame.data[0][y*s->frame.linesize[0]]; buf += decode_byterun(row, avctx->width, buf, buf_end); } - } else { // IFF-PBM: HAM to PIX_FMT_BGR32 + } else if (s->ham) { // IFF-PBM: HAM to PIX_FMT_BGR32 for (y = 0; y < avctx->height ; y++) { uint8_t *row = &s->frame.data[0][y*s->frame.linesize[0]]; buf += decode_byterun(s->ham_buf, avctx->width, buf, buf_end); decode_ham_plane32((uint32_t *) row, s->ham_buf, s->ham_palbuf, s->planesize); } + } else { + av_log_ask_for_sample(avctx, "unsupported bpp\n"); + return AVERROR_INVALIDDATA; } }