[FFmpeg-devel] [PATCH v2 3/7] avformat/hlsenc: Check some unchecked allocations
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Thu Apr 9 12:48:10 EEST 2020
Steven Liu:
>
>
>> 2020年2月28日 下午5:53,Andreas Rheinhardt <andreas.rheinhardt at gmail.com> 写道:
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>> libavformat/hlsenc.c | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>> index a281c379f0..18f40ff3ed 100644
>> --- a/libavformat/hlsenc.c
>> +++ b/libavformat/hlsenc.c
>> @@ -1610,6 +1610,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);
>> @@ -1770,6 +1772,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);
>>
>> @@ -2139,6 +2143,8 @@ static int update_master_pl_info(AVFormatContext *s)
>> int ret = 0;
>>
>> fn1 = av_strdup(s->url);
>> + if (!fn1)
>> + return AVERROR(ENOMEM);
> It’s unnecessary here,
> I have checked all strdup return checker in hlsenc some month ago, and double check the workflow in update_master_pl_info,
> It's the safe whether you check the strdup or not.
> Reference commit id: 61aa77272a25d83e5ce5c63d93c64bb9a3e15557
If these strdups fail, the relevant dirnames will be wrong. While you
don't get segfaults, you will not create the files at the right
destinations. We should rather error out instead.
- Andreas
More information about the ffmpeg-devel
mailing list