summaryrefslogtreecommitdiff
path: root/libc/stdio
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2014-10-27 16:13:34 -0400
committerWaldemar Brodkorb <wbx@openadk.org>2014-12-10 13:05:58 -0600
commit9649721950565d8a21a89017ac712257da644b75 (patch)
tree2e1cdebaa7facd753767e89be3793766b97d2ddf /libc/stdio
parent0cda37ffaf3cb7aec2c1c8b49e2a5b8f82255c3e (diff)
mkostemp: fix implementation
mkostemp(char *template, int flags) generates a unique temporary filename from a template. The flags parameter accepts three of the same flags as open(2): O_APPEND, O_CLOEXEC, and O_SYNC. The current implementation of mkostemp(3) does not respect the flags and in fact confuses the flags with the file mode which should always be S_IRUSR | S_IWUSR. This patch corrects this issue. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'libc/stdio')
-rw-r--r--libc/stdio/tempnam.c2
-rw-r--r--libc/stdio/tmpfile.c2
-rw-r--r--libc/stdio/tmpnam.c2
-rw-r--r--libc/stdio/tmpnam_r.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/libc/stdio/tempnam.c b/libc/stdio/tempnam.c
index 232ed02c5..74bb26ed5 100644
--- a/libc/stdio/tempnam.c
+++ b/libc/stdio/tempnam.c
@@ -35,7 +35,7 @@ tempnam (const char *dir, const char *pfx)
if (__path_search (buf, FILENAME_MAX, dir, pfx, 1))
return NULL;
- if (__gen_tempname (buf, __GT_NOCREATE, 0))
+ if (__gen_tempname (buf, __GT_NOCREATE, 0, 0))
return NULL;
return strdup (buf);
diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c
index a9bf4743a..83c85b53d 100644
--- a/libc/stdio/tmpfile.c
+++ b/libc/stdio/tmpfile.c
@@ -35,7 +35,7 @@ FILE * tmpfile (void)
if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0))
return NULL;
- fd = __gen_tempname (buf, __GT_FILE, S_IRUSR | S_IWUSR);
+ fd = __gen_tempname (buf, __GT_FILE, 0, S_IRUSR | S_IWUSR);
if (fd < 0)
return NULL;
diff --git a/libc/stdio/tmpnam.c b/libc/stdio/tmpnam.c
index 88b9bff1f..ffed862c1 100644
--- a/libc/stdio/tmpnam.c
+++ b/libc/stdio/tmpnam.c
@@ -40,7 +40,7 @@ tmpnam (char *s)
0))
return NULL;
- if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0), 0))
+ if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0, 0), 0))
return NULL;
if (s == NULL)
diff --git a/libc/stdio/tmpnam_r.c b/libc/stdio/tmpnam_r.c
index 8cde84d7a..bfd60a437 100644
--- a/libc/stdio/tmpnam_r.c
+++ b/libc/stdio/tmpnam_r.c
@@ -27,7 +27,7 @@ char * tmpnam_r (char *s)
if (__path_search (s, L_tmpnam, NULL, NULL, 0))
return NULL;
- if (__gen_tempname (s, __GT_NOCREATE, 0))
+ if (__gen_tempname (s, __GT_NOCREATE, 0, 0))
return NULL;
return s;