summaryrefslogtreecommitdiff
path: root/libc/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'libc/stdlib')
-rw-r--r--libc/stdlib/mkdtemp.c2
-rw-r--r--libc/stdlib/mkostemp.c4
-rw-r--r--libc/stdlib/mkostemp64.c2
-rw-r--r--libc/stdlib/mkstemp.c2
-rw-r--r--libc/stdlib/mkstemp64.c2
-rw-r--r--libc/stdlib/mktemp.c2
6 files changed, 8 insertions, 6 deletions
diff --git a/libc/stdlib/mkdtemp.c b/libc/stdlib/mkdtemp.c
index da7598a6f..e6d4a364c 100644
--- a/libc/stdlib/mkdtemp.c
+++ b/libc/stdlib/mkdtemp.c
@@ -29,7 +29,7 @@
(This function comes from OpenBSD.) */
char * mkdtemp (char *template)
{
- if (__gen_tempname (template, __GT_DIR, S_IRUSR | S_IWUSR | S_IXUSR))
+ if (__gen_tempname (template, __GT_DIR, 0, S_IRUSR | S_IWUSR | S_IXUSR))
return NULL;
else
return template;
diff --git a/libc/stdlib/mkostemp.c b/libc/stdlib/mkostemp.c
index 0369235dc..912be30a6 100644
--- a/libc/stdlib/mkostemp.c
+++ b/libc/stdlib/mkostemp.c
@@ -17,6 +17,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <fcntl.h>
#include "../misc/internals/tempname.h"
/* Generate a unique temporary file name from TEMPLATE.
@@ -26,5 +27,6 @@
int
mkostemp (char *template, int flags)
{
- return __gen_tempname (template, __GT_FILE, flags);
+ flags -= flags & O_ACCMODE; /* Remove O_RDONLY, O_WRONLY, and O_RDWR. */
+ return __gen_tempname (template, __GT_FILE, flags, S_IRUSR | S_IWUSR);
}
diff --git a/libc/stdlib/mkostemp64.c b/libc/stdlib/mkostemp64.c
index d21def58a..c6d6d849d 100644
--- a/libc/stdlib/mkostemp64.c
+++ b/libc/stdlib/mkostemp64.c
@@ -27,5 +27,5 @@
int
mkostemp64 (char *template, int flags)
{
- return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE);
+ return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IXUSR);
}
diff --git a/libc/stdlib/mkstemp.c b/libc/stdlib/mkstemp.c
index 61c717511..a3a159590 100644
--- a/libc/stdlib/mkstemp.c
+++ b/libc/stdlib/mkstemp.c
@@ -26,5 +26,5 @@
Then open the file and return a fd. */
int mkstemp (char *template)
{
- return __gen_tempname (template, __GT_FILE, S_IRUSR | S_IWUSR);
+ return __gen_tempname (template, __GT_FILE, 0, S_IRUSR | S_IWUSR);
}
diff --git a/libc/stdlib/mkstemp64.c b/libc/stdlib/mkstemp64.c
index e29be2da4..6f2ee3e83 100644
--- a/libc/stdlib/mkstemp64.c
+++ b/libc/stdlib/mkstemp64.c
@@ -26,5 +26,5 @@
Then open the file and return a fd. */
int mkstemp64 (char *template)
{
- return __gen_tempname (template, __GT_BIGFILE, S_IRUSR | S_IWUSR);
+ return __gen_tempname (template, __GT_BIGFILE, 0, S_IRUSR | S_IWUSR);
}
diff --git a/libc/stdlib/mktemp.c b/libc/stdlib/mktemp.c
index edd001d49..1ff93da3c 100644
--- a/libc/stdlib/mktemp.c
+++ b/libc/stdlib/mktemp.c
@@ -24,7 +24,7 @@
* they are replaced with a string that makes the filename unique. */
char *mktemp(char *template)
{
- if (__gen_tempname (template, __GT_NOCREATE, 0) < 0)
+ if (__gen_tempname (template, __GT_NOCREATE, 0, 0) < 0)
/* We return the null string if we can't find a unique file name. */
template[0] = '\0';