summaryrefslogtreecommitdiff
path: root/fftools/ffmpeg_opt.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-07-14 12:28:18 +0200
committerAnton Khirnov <anton@khirnov.net>2023-07-20 20:40:26 +0200
commit2e6afa799ef693b94f993f54ed41a84f6d9f1685 (patch)
tree4bbaa6d60ca130e97a6a4a36bc86b6ac0319ba1e /fftools/ffmpeg_opt.c
parentb23abb7c484b0ada607a73a62ce6c6efe33fc47c (diff)
fftools/cmdutils: add error handling to GROW_ARRAY()
Diffstat (limited to 'fftools/ffmpeg_opt.c')
-rw-r--r--fftools/ffmpeg_opt.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 7002986369..eef6d5e749 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -361,6 +361,7 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
OptionsContext *o = optctx;
StreamMap *m = NULL;
int i, negative = 0, file_idx, disabled = 0;
+ int ret;
#if FFMPEG_OPT_MAP_SYNC
char *sync;
#endif
@@ -387,7 +388,11 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
if (map[0] == '[') {
/* this mapping refers to lavfi output */
const char *c = map + 1;
- GROW_ARRAY(o->stream_maps, o->nb_stream_maps);
+
+ ret = GROW_ARRAY(o->stream_maps, o->nb_stream_maps);
+ if (ret < 0)
+ return ret;
+
m = &o->stream_maps[o->nb_stream_maps - 1];
m->linklabel = av_get_token(&c, "]");
if (!m->linklabel) {
@@ -421,7 +426,10 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
disabled = 1;
continue;
}
- GROW_ARRAY(o->stream_maps, o->nb_stream_maps);
+ ret = GROW_ARRAY(o->stream_maps, o->nb_stream_maps);
+ if (ret < 0)
+ return ret;
+
m = &o->stream_maps[o->nb_stream_maps - 1];
m->file_index = file_idx;
@@ -450,7 +458,10 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
static int opt_attach(void *optctx, const char *opt, const char *arg)
{
OptionsContext *o = optctx;
- GROW_ARRAY(o->attachments, o->nb_attachments);
+ int ret = GROW_ARRAY(o->attachments, o->nb_attachments);
+ if (ret < 0)
+ return ret;
+
o->attachments[o->nb_attachments - 1] = arg;
return 0;
}
@@ -459,7 +470,7 @@ static int opt_attach(void *optctx, const char *opt, const char *arg)
static int opt_map_channel(void *optctx, const char *opt, const char *arg)
{
OptionsContext *o = optctx;
- int n;
+ int n, ret;
AVStream *st;
AudioChannelMap *m;
char *allow_unused;
@@ -474,7 +485,10 @@ static int opt_map_channel(void *optctx, const char *opt, const char *arg)
if (!mapchan)
return AVERROR(ENOMEM);
- GROW_ARRAY(o->audio_channel_maps, o->nb_audio_channel_maps);
+ ret = GROW_ARRAY(o->audio_channel_maps, o->nb_audio_channel_maps);
+ if (ret < 0)
+ return ret;
+
m = &o->audio_channel_maps[o->nb_audio_channel_maps - 1];
/* muted channel syntax */