[FFmpeg-devel] [PATCH] iff: do not decode unsupported pbms with ham decoder

Peter Ross pross at xvid.org
Mon Mar 12 00:39:37 CET 2012


This prevents the segfault reported by ticket #1054

---
 libavcodec/iff.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 9b09604..30ce70d 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -635,12 +635,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;
     }
 
     *data_size = sizeof(AVFrame);
-- 
1.7.5.4

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120312/014da20f/attachment.asc>


More information about the ffmpeg-devel mailing list