On 4/12/2024 1:44 PM, LuMingYin wrote:
Signed-off-by: LuMingYin <lumingyindet...@163.com>
---
  fftools/ffmpeg_mux_init.c | 7 ++++---
  libavutil/mem.c           | 5 ++++-
  2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
index 6d8bd5bcdf..e7e2281bd0 100644
--- a/fftools/ffmpeg_mux_init.c
+++ b/fftools/ffmpeg_mux_init.c
@@ -2851,9 +2851,10 @@ static int parse_forced_key_frames(void *log, 
KeyframeForceCtx *kf,
if (nb_ch > INT_MAX - size ||
                  !(pts = av_realloc_f(pts, size += nb_ch - 1,
-                                     sizeof(*pts))))
-                return AVERROR(ENOMEM);
-
+                                     sizeof(*pts)))) {
+                ret = AVERROR(ENOMEM);
+                goto fail;
+            }
              if (p[8]) {
                  ret = av_parse_time(&t, p + 8, 1);
                  if (ret < 0) {
diff --git a/libavutil/mem.c b/libavutil/mem.c
index b205d3fb25..7f34765fe7 100644
--- a/libavutil/mem.c
+++ b/libavutil/mem.c
@@ -177,11 +177,14 @@ void *av_realloc_f(void *ptr, size_t nelem, size_t elsize)
if (size_mult(elsize, nelem, &size)) {
          av_free(ptr);
+        ptr = NULL;
          return NULL;
      }
      r = av_realloc(ptr, size);
-    if (!r)
+    if (!r) {
          av_free(ptr);
+        ptr = NULL;
+    }

This doesn't do what you think it does. ptr is a local variable in this scope. Setting it to NULL will not be reflected in ffmpeg_mux_init.c And even if it did, it would be an unexpected behavior change in a public API function.

      return r;
  }
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to