summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2018-08-24 10:01:42 +0200
committerDaniel Stenberg <daniel@haxx.se>2018-08-24 10:01:42 +0200
commiteb1592ec84bec8899a664201a7f2298ace059ea9 (patch)
treed746c456c0769caa7977f5220c64570d7d6dac43
parent6b6c2b8d57a69a256f7a727784876d8cc37aa669 (diff)
downloadcurl-bagder/issue-2739.tar.gz
curl: fix time-of-check, time-of-use race in dir creationbagder/issue-2739
Detected by Coverity Fixes #2739
-rw-r--r--src/tool_dirhie.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/tool_dirhie.c b/src/tool_dirhie.c
index a01f9dc5f..36c06941c 100644
--- a/src/tool_dirhie.c
+++ b/src/tool_dirhie.c
@@ -139,12 +139,10 @@ CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
else
snprintf(dirbuildup, outlen, "%s%s", DIR_CHAR, tempdir);
}
- if(access(dirbuildup, F_OK) == -1) {
- if(-1 == mkdir(dirbuildup, (mode_t)0000750)) {
- show_dir_errno(errors, dirbuildup);
- result = CURLE_WRITE_ERROR;
- break; /* get out of loop */
- }
+ if((-1 == mkdir(dirbuildup, (mode_t)0000750)) && (errno != EEXIST)) {
+ show_dir_errno(errors, dirbuildup);
+ result = CURLE_WRITE_ERROR;
+ break; /* get out of loop */
}
}
tempdir = tempdir2;