diff options
| author | Mikhail Gusarov <dottedmag@dottedmag.net> | 2009-11-08 02:33:15 +0600 | 
|---|---|---|
| committer | Austin Foxley <austinf@cetoncorp.com> | 2009-11-09 15:24:19 -0800 | 
| commit | 8d74517c1619e3f688ad543717cee25d0b166a6e (patch) | |
| tree | ad2a9a1a66b1a8ef63463d94ffe038a6aeee6dee /libc/stdlib | |
| parent | 45bc2bc53ddb15fb8df194240d232e09b6872b39 (diff) | |
Extend __gen_tempname with mode argument
sem_open(3) needs to create a temporary file in a way which can't
be efficiently implemented in terms of POSIX API. Extend
__gen_tempname with mode_t mode argument in order to ease
sem_open implementation.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Diffstat (limited to 'libc/stdlib')
| -rw-r--r-- | libc/stdlib/mkdtemp.c | 3 | ||||
| -rw-r--r-- | libc/stdlib/mkstemp.c | 3 | ||||
| -rw-r--r-- | libc/stdlib/mkstemp64.c | 3 | ||||
| -rw-r--r-- | libc/stdlib/mktemp.c | 2 | 
4 files changed, 7 insertions, 4 deletions
diff --git a/libc/stdlib/mkdtemp.c b/libc/stdlib/mkdtemp.c index fa9ae3b05..2bf15ae06 100644 --- a/libc/stdlib/mkdtemp.c +++ b/libc/stdlib/mkdtemp.c @@ -19,6 +19,7 @@  #include <stdio.h>  #include <stdlib.h> +#include <sys/stat.h>  #include "../misc/internals/tempname.h"  #ifdef __USE_BSD @@ -29,7 +30,7 @@     (This function comes from OpenBSD.) */  char * mkdtemp (char *template)  { -  if (__gen_tempname (template, __GT_DIR)) +  if (__gen_tempname (template, __GT_DIR, S_IRUSR | S_IWUSR | S_IXUSR))      return NULL;    else      return template; diff --git a/libc/stdlib/mkstemp.c b/libc/stdlib/mkstemp.c index c569ceaf5..ce7d7dba0 100644 --- a/libc/stdlib/mkstemp.c +++ b/libc/stdlib/mkstemp.c @@ -18,6 +18,7 @@  #include <stdio.h>  #include <stdlib.h> +#include <sys/stat.h>  #include "../misc/internals/tempname.h"  /* Generate a unique temporary file name from TEMPLATE. @@ -26,5 +27,5 @@     Then open the file and return a fd. */  int mkstemp (char *template)  { -    return __gen_tempname (template, __GT_FILE); +    return __gen_tempname (template, __GT_FILE, S_IRUSR | S_IWUSR);  } diff --git a/libc/stdlib/mkstemp64.c b/libc/stdlib/mkstemp64.c index 02a03f00e..2cdee70a2 100644 --- a/libc/stdlib/mkstemp64.c +++ b/libc/stdlib/mkstemp64.c @@ -18,6 +18,7 @@  #include <stdio.h>  #include <stdlib.h> +#include <sys/stat.h>  #include "../misc/internals/tempname.h"  /* Generate a unique temporary file name from TEMPLATE. @@ -26,5 +27,5 @@     Then open the file and return a fd. */  int mkstemp64 (char *template)  { -    return __gen_tempname (template, __GT_BIGFILE); +    return __gen_tempname (template, __GT_BIGFILE, S_IRUSR | S_IWUSR);  } diff --git a/libc/stdlib/mktemp.c b/libc/stdlib/mktemp.c index f3af1c15c..3c922e328 100644 --- a/libc/stdlib/mktemp.c +++ b/libc/stdlib/mktemp.c @@ -25,7 +25,7 @@   * they are replaced with a string that makes the filename unique.  */  char *mktemp(char *template)  { -	if (__gen_tempname (template, __GT_NOCREATE) < 0) +	if (__gen_tempname (template, __GT_NOCREATE, 0) < 0)  		/* We return the null string if we can't find a unique file name.  */  		template[0] = '\0';  | 
