[FFmpeg-devel] [PATCH 01/12] avcodec/wmaprodec: get frame during frame decode
Paul B Mahol
onemda at gmail.com
Thu Sep 26 10:50:15 EEST 2019
bettter add init cleanup?
On 9/25/19, Michael Niedermayer <michael at niedermayer.cc> wrote:
> Fixes: memleak
> Fixes:
> 17615/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XMA2_fuzzer-5681306024804352
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
> libavcodec/wmaprodec.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
> index d0fa974c80..5ff26e907d 100644
> --- a/libavcodec/wmaprodec.c
> +++ b/libavcodec/wmaprodec.c
> @@ -1793,6 +1793,12 @@ static int xma_decode_packet(AVCodecContext *avctx,
> void *data,
> AVFrame *frame = data;
> int i, ret, offset = INT_MAX;
>
> + if (!s->frames[s->current_stream]->data[0]) {
> + s->frames[s->current_stream]->nb_samples = 512;
> + if ((ret = ff_get_buffer(avctx, s->frames[s->current_stream], 0)) <
> 0) {
> + return ret;
> + }
> + }
> /* decode current stream packet */
> ret = decode_packet(avctx, &s->xma[s->current_stream],
> s->frames[s->current_stream],
> &got_stream_frame_ptr, avpkt);
> @@ -1915,10 +1921,6 @@ static av_cold int xma_decode_init(AVCodecContext
> *avctx)
> s->frames[i] = av_frame_alloc();
> if (!s->frames[i])
> return AVERROR(ENOMEM);
> - s->frames[i]->nb_samples = 512;
> - if ((ret = ff_get_buffer(avctx, s->frames[i], 0)) < 0) {
> - return AVERROR(ENOMEM);
> - }
>
> s->start_channel[i] = start_channels;
> start_channels += s->xma[i].nb_channels;
> --
> 2.23.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list