[FFmpeg-devel] [PATCH] iff: do not decode unsupported pbms with ham decoder
Paul B Mahol
onemda at gmail.com
Mon Mar 12 00:48:11 CET 2012
On 3/11/12, Peter Ross <pross at xvid.org> wrote:
> This prevents the segfault reported by ticket #1054
Does this fix real source of crash or just adds "workaround"?
>
> ---
> 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");
OK, alternatively it could be treated as invalid.
More information about the ffmpeg-devel
mailing list