summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2020-07-29 03:21:57 -0400
committerJay Satiro <raysatiro@yahoo.com>2020-07-29 11:36:14 -0400
commit5f79891658708ccdc2ca6b616595a51840c27b07 (patch)
tree5ec4afca9a3a727925bc5ae9d2482970afcb41d7
parent2f72ad44fca689d3e0f4574e59e551443c406717 (diff)
downloadcurl-5f79891658708ccdc2ca6b616595a51840c27b07.tar.gz
tool_cb_wrt: fix outfile mode flags for Windows
- Use S_IREAD and S_IWRITE mode permission flags to create the file on Windows instead of S_IRUSR, S_IWUSR, etc. Windows only accepts a combination of S_IREAD and S_IWRITE. It does not acknowledge other combinations, for which it may generate an assertion. This is a follow-up to 81b4e99 from yesterday, which improved the existing file check with -J. Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks Ref: https://github.com/curl/curl/pull/5731 Closes https://github.com/curl/curl/pull/5742
-rw-r--r--src/tool_cb_wrt.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/tool_cb_wrt.c b/src/tool_cb_wrt.c
index e0742630b..64b62fefd 100644
--- a/src/tool_cb_wrt.c
+++ b/src/tool_cb_wrt.c
@@ -26,6 +26,8 @@
#include <fcntl.h>
#endif
+#include <sys/stat.h>
+
#define ENABLE_CURLX_PRINTF
/* use our own printf() functions */
#include "curlx.h"
@@ -57,9 +59,10 @@ bool tool_create_output_file(struct OutStruct *outs,
#define O_BINARY 0
#endif
int fd = open(outs->filename, O_CREAT | O_WRONLY | O_EXCL | O_BINARY,
- S_IRUSR | S_IWUSR
-#ifdef S_IRGRP
- | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
+#ifdef WIN32
+ S_IREAD | S_IWRITE
+#else
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
#endif
);
if(fd != -1) {