[FFmpeg-cvslog] iff: do not decode unsupported pbms with ham decoder
Peter Ross
git at videolan.org
Tue Mar 13 11:57:36 CET 2012
ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Mon Mar 12 10:32:11 2012 +1100| [e05253bf49e19c601c9d4a872c4f7f985797e163] | committer: Peter Ross
iff: do not decode unsupported pbms with ham decoder
This prevents the segfault reported by ticket #1054
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e05253bf49e19c601c9d4a872c4f7f985797e163
---
libavcodec/iff.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index fdeba14..925d928 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;
}
}
More information about the ffmpeg-cvslog
mailing list