diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2014-10-27 16:13:34 -0400 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-12-10 13:05:58 -0600 |
commit | 9649721950565d8a21a89017ac712257da644b75 (patch) | |
tree | 2e1cdebaa7facd753767e89be3793766b97d2ddf /libc/stdlib/mkostemp.c | |
parent | 0cda37ffaf3cb7aec2c1c8b49e2a5b8f82255c3e (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/stdlib/mkostemp.c')
-rw-r--r-- | libc/stdlib/mkostemp.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); } |