Commit 803e8227 authored by Martin Storsjö's avatar Martin Storsjö

libavformat: Check mkdir return error codes

Previously, the returned error codes were intentionally ignored
(see fadd3a68), to avoid aborting if the directory already
existed. If the mkdir actually failed, this was caught when
opening files within the directory fails anyway.

By handling the error code here (but explicitly ignoring EEXIST),
the error messages and return codes in these cases are more
appropriate and less confusing.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 041caf1a
......@@ -323,7 +323,10 @@ static int hds_write_header(AVFormatContext *s)
int ret = 0, i;
AVOutputFormat *oformat;
mkdir(s->filename, 0777);
if (mkdir(s->filename, 0777) == -1 && errno != EEXIST) {
ret = AVERROR(errno);
goto fail;
}
oformat = av_guess_format("flv", NULL, NULL);
if (!oformat) {
......
......@@ -292,7 +292,10 @@ static int ism_write_header(AVFormatContext *s)
int ret = 0, i;
AVOutputFormat *oformat;
mkdir(s->filename, 0777);
if (mkdir(s->filename, 0777) == -1 && errno != EEXIST) {
ret = AVERROR(errno);
goto fail;
}
oformat = av_guess_format("ismv", NULL, NULL);
if (!oformat) {
......@@ -319,7 +322,10 @@ static int ism_write_header(AVFormatContext *s)
goto fail;
}
snprintf(os->dirname, sizeof(os->dirname), "%s/QualityLevels(%d)", s->filename, s->streams[i]->codec->bit_rate);
mkdir(os->dirname, 0777);
if (mkdir(os->dirname, 0777) == -1 && errno != EEXIST) {
ret = AVERROR(errno);
goto fail;
}
ctx = avformat_alloc_context();
if (!ctx) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment