From 8aed3911fc454e79697e183660bf30d31334a64b Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 14 Mar 2022 12:30:31 +0100 Subject: [PATCH] fftools/ffmpeg: make attachment filenames dynamically allocated 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 --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; }