From e7af1394ecd0e7c237db34ee9c149afff37641dd Mon Sep 17 00:00:00 2001 From: Derek Buitenhuis Date: Fri, 24 Nov 2017 19:24:41 +0000 Subject: [PATCH] vorbisenc: Check the return value of av_frame_clone Prevents a segfault when alloc fails. Signed-off-by: Derek Buitenhuis --- libavcodec/vorbisenc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index a4ecd8f754..18a679f2dc 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -1093,9 +1093,13 @@ static int vorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, PutBitContext pb; if (frame) { + AVFrame *clone; if ((ret = ff_af_queue_add(&venc->afq, frame)) < 0) return ret; - ff_bufqueue_add(avctx, &venc->bufqueue, av_frame_clone(frame)); + clone = av_frame_clone(frame); + if (!clone) + return AVERROR(ENOMEM); + ff_bufqueue_add(avctx, &venc->bufqueue, clone); } else if (!venc->afq.remaining_samples) return 0;