[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