diff mbox

[FFmpeg-devel,2/2] vorbisenc: Check the return value of av_frame_clone

Message ID 20171124192713.13230-3-derek.buitenhuis@gmail.com
State Accepted
Commit e7af1394ecd0e7c237db34ee9c149afff37641dd
Headers show

Commit Message

Derek Buitenhuis Nov. 24, 2017, 7:27 p.m. UTC
Prevents a segfault when alloc fails.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
---
 libavcodec/vorbisenc.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Derek Buitenhuis Nov. 26, 2017, 1:21 p.m. UTC | #1
On 11/24/2017 7:27 PM, Derek Buitenhuis wrote:
> Prevents a segfault when alloc fails.
> 
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
> ---
>  libavcodec/vorbisenc.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

If there are no objections, I'll push this today after a FATE run.

- Derek
diff mbox

Patch

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;