diff mbox series

[FFmpeg-devel,10/11] avcodec/evc_frame_merge_bsf: ceck for av_memdup() failure

Message ID 20230615151836.50535-10-jamrial@gmail.com
State Accepted
Commit b1d0b59d81bc36e333572d36f878fc6735be63ad
Headers show
Series [FFmpeg-devel,01/11] avformat/evcdec: set the demuxer as AVFMT_NOTIMESTAMPS | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

James Almer June 15, 2023, 3:18 p.m. UTC
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavcodec/evc_frame_merge_bsf.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/libavcodec/evc_frame_merge_bsf.c b/libavcodec/evc_frame_merge_bsf.c
index d2746a1ef6..fbb344490a 100644
--- a/libavcodec/evc_frame_merge_bsf.c
+++ b/libavcodec/evc_frame_merge_bsf.c
@@ -61,6 +61,7 @@  static void evc_frame_merge_flush(AVBSFContext *bsf)
     EVCFMergeContext *ctx = bsf->priv_data;
 
     av_packet_unref(ctx->in);
+    ctx->au_buffer.data_size = 0;
 }
 
 static int evc_frame_merge_filter(AVBSFContext *bsf, AVPacket *out)
@@ -117,9 +118,13 @@  static int evc_frame_merge_filter(AVBSFContext *bsf, AVPacket *out)
 
     if (au_end_found) {
         uint8_t *data = av_memdup(ctx->au_buffer.data, ctx->au_buffer.data_size);
-        err = av_packet_from_data(out, data, ctx->au_buffer.data_size);
+        size_t data_size = ctx->au_buffer.data_size;
 
         ctx->au_buffer.data_size = 0;
+        if (!data)
+            return AVERROR(ENOMEM);
+
+        err = av_packet_from_data(out, data, data_size);
     } else
         err = AVERROR(EAGAIN);