From 85e8192b8593816c0445411a5bef5fc5363a9b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Wed, 11 Sep 2013 23:09:37 +0300 Subject: [PATCH] avpacket: Fix error checking in packet_alloc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously the wrong buffer pointer was checked, when buf instead of *buf was checked. But checking the return value instead is even better. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö --- libavcodec/avpacket.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 79123b186c..c0a0f8cd7b 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -64,12 +64,13 @@ FF_ENABLE_DEPRECATION_WARNINGS static int packet_alloc(AVBufferRef **buf, int size) { + int ret; if ((unsigned)size >= (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE) return AVERROR(EINVAL); - av_buffer_realloc(buf, size + FF_INPUT_BUFFER_PADDING_SIZE); - if (!buf) - return AVERROR(ENOMEM); + ret = av_buffer_realloc(buf, size + FF_INPUT_BUFFER_PADDING_SIZE); + if (ret < 0) + return ret; memset((*buf)->data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);