diff mbox series

[FFmpeg-devel,3/6] fftools/ffmpeg: make attachment filenames dynamically allocated

Message ID 20240117092233.8503-3-anton@khirnov.net
State Accepted
Commit 8aed3911fc454e79697e183660bf30d31334a64b
Headers show
Series [FFmpeg-devel,1/6] fftools/ffprobe: make option strings dynamically allocated | 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

Anton Khirnov Jan. 17, 2024, 9:22 a.m. UTC
Do not store the supplied arg pointer directly. While that is valid for
now, it will become ephemeral in the future commits.
---
 fftools/ffmpeg_opt.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index ea995f2b5f..563f443bd8 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -124,6 +124,9 @@  static void uninit_options(OptionsContext *o)
 #if FFMPEG_OPT_MAP_CHANNEL
     av_freep(&o->audio_channel_maps);
 #endif
+
+    for (i = 0; i < o->nb_attachments; i++)
+        av_freep(&o->attachments[i]);
     av_freep(&o->attachments);
 
     av_dict_free(&o->streamid);
@@ -494,7 +497,10 @@  static int opt_attach(void *optctx, const char *opt, const char *arg)
     if (ret < 0)
         return ret;
 
-    o->attachments[o->nb_attachments - 1] = arg;
+    o->attachments[o->nb_attachments - 1] = av_strdup(arg);
+    if (!o->attachments[o->nb_attachments - 1])
+        return AVERROR(ENOMEM);
+
     return 0;
 }