X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg_opt.c;h=bc8355e2bf08474f12365cb3800ab1e9d2d923dc;hb=c63da6e91630b72fa5916314910cb35e82331f70;hp=669976bcb05ebdd11e1dd496031d909f43dcd35c;hpb=9f18be42f0af47cd88148ce2b0bfac7d2c86c89b;p=ffmpeg diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 669976bcb05..bc8355e2bf0 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -2366,18 +2366,25 @@ loop_end: while(*p) { const char *p2 = av_get_token(&p, ":"); + const char *to_dealloc = p2; char *key; if (!p2) break; + if(*p) p++; key = av_get_token(&p2, "="); - if (!key || !*p2) + if (!key || !*p2) { + av_freep(&to_dealloc); + av_freep(&key); break; + } p2++; if (!strcmp(key, "program_num")) progid = strtol(p2, NULL, 0); + av_freep(&to_dealloc); + av_freep(&key); } program = av_new_program(oc, progid); @@ -2385,6 +2392,7 @@ loop_end: p = o->program[i].u.str; while(*p) { const char *p2 = av_get_token(&p, ":"); + const char *to_dealloc = p2; char *key; if (!p2) break; @@ -2411,6 +2419,8 @@ loop_end: av_log(NULL, AV_LOG_FATAL, "Unknown program key %s.\n", key); exit_program(1); } + av_freep(&to_dealloc); + av_freep(&key); } }