[FFmpeg-devel] [PATCH] Adding mkdir option for img2enc (3rd attempt)

Dr. Alan Barclay alan at escribe.co.uk
Wed Jan 17 12:56:01 EET 2018


Hi,

Attached in a further patch - adding the error checks.

Derek - I don't think there is a functional downside to this 'mkdir' 
option being a default behaviour, but it would introduce a minor 
performance penalty (which users maybe don't want).

All comments and help appreciated.

Thanks and Regards,
Alan.


On 27/12/2017 16:01, Derek Buitenhuis wrote:
> Hi,
> 
> On 12/27/2017 12:27 PM, Dr Alan Barclay wrote:
>> Resending the two (git format-patch) patches, without the top lines
>> removed (which I thought I needed to do as some patch emails didn't seem
>> to have them).
>>
>> All comments and help appreciated.
> 
> [...]
> 
>> Subject: [PATCH 1/2] Move mkdir_p (renamed ff_mkdir_p) from hlsenc.c to
>>   utils.c.
>>
>> ---
>>   libavformat/hlsenc.c   | 35 +----------------------------------
>>   libavformat/internal.h |  7 +++++++
>>   libavformat/utils.c    | 33 +++++++++++++++++++++++++++++++++
>>   3 files changed, 41 insertions(+), 34 deletions(-)
> 
> On a technical level, this patch looks OK.
> 
>> Subject: [PATCH 2/2] Adding mkdir option for img2enc.
>>
>> ---
>>   libavformat/img2enc.c | 8 ++++++++
>>   1 file changed, 8 insertions(+)
> 
> I'm not sure how others feel about the premise (mkdir in img2enc).
> I personally don't mind - though, maybe it should be default instead
> of an option? (Maybe a bad idea.)
> 
>> +        if (img->use_mkdir) {
>> +            char *temp_filename = av_strdup(filename);
>> +            const char *temp_path = av_dirname(temp_filename);
>> +            ff_mkdir_p(temp_path);
>> +            av_free(temp_filename);
>> +        }
> 
> This lacks error checks for av_strdup and ff_mkdir_p.
> 
> - Derek
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 


-- 
Dr. Alan Barclay
Electric Scribe Ltd.
118 Stanley Street
Aberdeen AB10 6UQ, U.K.
+44 1224 591779 office
+44 7803 606485 mobile
alan at escribe.co.uk
-------------- next part --------------
From a85be3fbf11f40567370c58f6c7e72d7edbd3109 Mon Sep 17 00:00:00 2001
From: "Dr. Alan Barclay" <alan at escribe.co.uk>
Date: Wed, 17 Jan 2018 10:44:17 +0000
Subject: [PATCH 2/2] Added error checking for mkdir option.

---
 libavformat/img2enc.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index a8ee064396..9de2c8f356 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -116,9 +116,17 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
             return AVERROR(EINVAL);
         }
         if (img->use_mkdir) {
+            const char *temp_path;
             char *temp_filename = av_strdup(filename);
-            const char *temp_path = av_dirname(temp_filename);
-            ff_mkdir_p(temp_path);
+            if (!temp_filename) {
+                return AVERROR(ENOMEM);
+            }
+            temp_path = av_dirname(temp_filename);
+            if (ff_mkdir_p(temp_path) == -1 && errno != EEXIST) {
+                av_log(s, AV_LOG_ERROR, "Could not create directory %s\n", temp_path);
+                av_free(temp_filename);
+                return AVERROR(errno);
+            }
             av_free(temp_filename);
         }
         for (i = 0; i < 4; i++) {
-- 
2.11.0



More information about the ffmpeg-devel mailing list