[FFmpeg-cvslog] avformat/hlsenc: move freep segment from sls_flags_filename_process after caller failed

Steven Liu git at videolan.org
Mon Oct 28 08:28:29 EET 2019


ffmpeg | branch: master | Steven Liu <lq at chinaffmpeg.org> | Thu Oct 10 10:07:49 2019 +0800| [1a109fba5499f95d3d0cc526a912f9e71446c812] | committer: Steven Liu

avformat/hlsenc: move freep segment from sls_flags_filename_process after caller failed

Signed-off-by: Steven Liu <lq at chinaffmpeg.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1a109fba5499f95d3d0cc526a912f9e71446c812
---

 libavformat/hlsenc.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 7b1d54e23e..0876f72f13 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -889,7 +889,6 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
         strlen(vs->current_segment_final_filename_fmt)) {
         char * new_url = av_strdup(vs->current_segment_final_filename_fmt);
         if (!new_url) {
-            av_freep(&en);
             return AVERROR(ENOMEM);
         }
         ff_format_set_url(vs->avf, new_url);
@@ -901,7 +900,6 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
                        "you can try to remove second_level_segment_size flag\n",
                        vs->avf->url);
                 av_freep(&filename);
-                av_freep(&en);
                 return AVERROR(EINVAL);
             }
             ff_format_set_url(vs->avf, filename);
@@ -915,7 +913,6 @@ static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls
                        "you can try to remove second_level_segment_time flag\n",
                        vs->avf->url);
                 av_freep(&filename);
-                av_freep(&en);
                 return AVERROR(EINVAL);
             }
             ff_format_set_url(vs->avf, filename);
@@ -1037,6 +1034,7 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls,
     en->var_stream_idx = vs->var_stream_idx;
     ret = sls_flags_filename_process(s, hls, vs, en, duration, pos, size);
     if (ret < 0) {
+        av_freep(&en);
         return ret;
     }
 



More information about the ffmpeg-cvslog mailing list