[FFmpeg-devel] [PATCH] fftools/ffmpeg_mux_init: fix memory leak in ffmpeg_mux_init.c
LuMingYin
lumingyindetect at 163.com
Fri Apr 12 19:44:41 EEST 2024
Signed-off-by: LuMingYin <lumingyindetect at 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;
+ }
return r;
}
--
2.25.1
More information about the ffmpeg-devel
mailing list