[FFmpeg-cvslog] avformat/hlsenc: Check some unchecked allocations
Andreas Rheinhardt
git at videolan.org
Fri May 8 16:30:47 EEST 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sun Dec 15 11:24:32 2019 +0100| [2fcfc16dd21ac493f5297c6ad694e07e5af1c2e6] | committer: Andreas Rheinhardt
avformat/hlsenc: Check some unchecked allocations
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2fcfc16dd21ac493f5297c6ad694e07e5af1c2e6
---
libavformat/hlsenc.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index abbf283562..0abda8ba30 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1640,6 +1640,8 @@ static int hls_start(AVFormatContext *s, VariantStream *vs)
if (c->use_localtime_mkdir) {
const char *dir;
char *fn_copy = av_strdup(oc->url);
+ if (!fn_copy)
+ return AVERROR(ENOMEM);
dir = av_dirname(fn_copy);
if (ff_mkdir_p(dir) == -1 && errno != EEXIST) {
av_log(oc, AV_LOG_ERROR, "Could not create directory %s with use_localtime_mkdir\n", dir);
@@ -1806,6 +1808,8 @@ static int validate_name(int nb_vs, const char *fn)
}
fn_dup = av_strdup(fn);
+ if (!fn_dup)
+ return AVERROR(ENOMEM);
filename = av_basename(fn);
subdir_name = av_dirname(fn_dup);
@@ -2186,6 +2190,8 @@ static int update_master_pl_info(AVFormatContext *s)
int ret = 0;
fn1 = av_strdup(s->url);
+ if (!fn1)
+ return AVERROR(ENOMEM);
dir = av_dirname(fn1);
/**
@@ -2194,6 +2200,10 @@ static int update_master_pl_info(AVFormatContext *s)
*/
if (dir && av_stristr(av_basename(dir), "%v")) {
fn2 = av_strdup(dir);
+ if (!fn2) {
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
dir = av_dirname(fn2);
}
@@ -2934,7 +2944,8 @@ static int hls_init(AVFormatContext *s)
if (hls->nb_varstreams > 1) {
if (av_stristr(vs->fmp4_init_filename, "%v")) {
av_freep(&vs->fmp4_init_filename);
- format_name(hls->fmp4_init_filename, &vs->fmp4_init_filename, i, vs->varname);
+ ret = format_name(hls->fmp4_init_filename,
+ &vs->fmp4_init_filename, i, vs->varname);
} else {
ret = append_postfix(vs->fmp4_init_filename, fmp4_init_filename_len, i);
}
More information about the ffmpeg-cvslog
mailing list