From ae84305036ceced3813fb295b71d51343ffd9535 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 16 Dec 2019 01:04:05 +0100 Subject: [PATCH] avformat/hlsenc: Only allocate when data is known to be needed hls_init() would allocate a buffer, although it is only needed in one of two branches that follow. This commit moves the allocation to the branch that actually needs the buffer. Signed-off-by: Andreas Rheinhardt Reviewed-by: Steven Liu --- libavformat/hlsenc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 965c05c560..87bbfb8086 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -2906,22 +2906,21 @@ static int hls_init(AVFormatContext *s) ret = AVERROR(ENOMEM); goto fail; } - vs->vtt_m3u8_name = av_malloc(vtt_basename_size); - if (!vs->vtt_m3u8_name ) { - ret = AVERROR(ENOMEM); - goto fail; - } av_strlcpy(vs->vtt_basename, vs->m3u8_name, vtt_basename_size); p = strrchr(vs->vtt_basename, '.'); if (p) *p = '\0'; if ( hls->subtitle_filename ) { - av_freep(&vs->vtt_m3u8_name); ret = format_name(hls->subtitle_filename, &vs->vtt_m3u8_name, i, vs->varname); if (ret < 0) goto fail; } else { + vs->vtt_m3u8_name = av_malloc(vtt_basename_size); + if (!vs->vtt_m3u8_name) { + ret = AVERROR(ENOMEM); + goto fail; + } strcpy(vs->vtt_m3u8_name, vs->vtt_basename); av_strlcat(vs->vtt_m3u8_name, "_vtt.m3u8", vtt_basename_size); }