diff mbox series

[FFmpeg-devel] avcodec/vp3: Add missing check for av_malloc

Message ID 20220215095808.1672019-1-jiasheng@iscas.ac.cn
State Accepted
Commit 656cb0450aeb73b25d7d26980af342b37ac4c568
Headers show
Series [FFmpeg-devel] avcodec/vp3: Add missing check for av_malloc | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_aarch64_jetson success Make finished
andriy/make_fate_aarch64_jetson success Make fate finished
andriy/make_armv7_RPi4 success Make finished
andriy/make_fate_armv7_RPi4 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc success Make fate finished

Commit Message

Jiasheng Jiang Feb. 15, 2022, 9:58 a.m. UTC
Since the av_malloc() may fail and return NULL pointer,
it is needed that the 's->edge_emu_buffer' should be checked
whether the new allocation is success.

Fixes: d14723861b ("VP3: fix decoding of videos with stride > 2048")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 libavcodec/vp3.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Peter Ross Feb. 16, 2022, 7:36 a.m. UTC | #1
On Tue, Feb 15, 2022 at 05:58:08PM +0800, Jiasheng Jiang wrote:
> Since the av_malloc() may fail and return NULL pointer,
> it is needed that the 's->edge_emu_buffer' should be checked
> whether the new allocation is success.
> 
> Fixes: d14723861b ("VP3: fix decoding of videos with stride > 2048")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>  libavcodec/vp3.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
> index e9ab54d736..e2418eb6fa 100644
> --- a/libavcodec/vp3.c
> +++ b/libavcodec/vp3.c
> @@ -2679,8 +2679,13 @@ static int vp3_decode_frame(AVCodecContext *avctx,
>                                          AV_GET_BUFFER_FLAG_REF)) < 0)
>          goto error;
>  
> -    if (!s->edge_emu_buffer)
> +    if (!s->edge_emu_buffer) {
>          s->edge_emu_buffer = av_malloc(9 * FFABS(s->current_frame.f->linesize[0]));
> +        if (!s->edge_emu_buffer) {
> +            ret = AVERROR(ENOMEM);
> +            goto error;
> +        }
> +    }
>  

looks good to me.
i will apply in couple of days.

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
diff mbox series

Patch

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index e9ab54d736..e2418eb6fa 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2679,8 +2679,13 @@  static int vp3_decode_frame(AVCodecContext *avctx,
                                         AV_GET_BUFFER_FLAG_REF)) < 0)
         goto error;
 
-    if (!s->edge_emu_buffer)
+    if (!s->edge_emu_buffer) {
         s->edge_emu_buffer = av_malloc(9 * FFABS(s->current_frame.f->linesize[0]));
+        if (!s->edge_emu_buffer) {
+            ret = AVERROR(ENOMEM);
+            goto error;
+        }
+    }
 
     if (s->keyframe) {
         if (!s->theora) {