From: Daniel Stenberg Date: Fri, 24 Aug 2018 08:01:42 +0000 (+0200) Subject: curl: fix time-of-check, time-of-use race in dir creation X-Git-Tag: curl-7_61_1~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f16bed0;p=thirdparty%2Fcurl.git curl: fix time-of-check, time-of-use race in dir creation Patch-by: Jay Satiro Detected by Coverity Fixes #2739 Closes #2912 --- diff --git a/src/tool_dirhie.c b/src/tool_dirhie.c index a01f9dc5f8..36c06941c4 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;