diff options
Diffstat (limited to 'libc/misc')
| -rw-r--r-- | libc/misc/internals/tempname.c | 14 | ||||
| -rw-r--r-- | libc/misc/internals/tempname.h | 3 | 
2 files changed, 9 insertions, 8 deletions
| diff --git a/libc/misc/internals/tempname.c b/libc/misc/internals/tempname.c index cbd4ced7a..4abd3c6aa 100644 --- a/libc/misc/internals/tempname.c +++ b/libc/misc/internals/tempname.c @@ -168,14 +168,14 @@ static void brain_damaged_fillrand(unsigned char *buf, unsigned int len)     KIND may be one of:     __GT_NOCREATE:       simply verify that the name does not exist -                        at the time of the call. +                        at the time of the call. mode argument is ignored.     __GT_FILE:           create the file using open(O_CREAT|O_EXCL) -                        and return a read-write fd.  The file is mode 0600. +                        and return a read-write fd with given mode.     __GT_BIGFILE:        same as __GT_FILE but use open64(). -   __GT_DIR:            create a directory, which will be mode 0700. +   __GT_DIR:            create a directory with given mode.  */ -int attribute_hidden __gen_tempname (char *tmpl, int kind) +int attribute_hidden __gen_tempname (char *tmpl, int kind, mode_t mode)  {      char *XXXXXX;      unsigned int i; @@ -217,15 +217,15 @@ int attribute_hidden __gen_tempname (char *tmpl, int kind)  			fd = 0;  		}  	    case __GT_FILE: -		fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); +		fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, mode);  		break;  #if defined __UCLIBC_HAS_LFS__  	    case __GT_BIGFILE: -		fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); +		fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, mode);  		break;  #endif  	    case __GT_DIR: -		fd = mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); +		fd = mkdir (tmpl, mode);  		break;  	    default:  		fd = -1; diff --git a/libc/misc/internals/tempname.h b/libc/misc/internals/tempname.h index ac40bef6e..e75b632d8 100644 --- a/libc/misc/internals/tempname.h +++ b/libc/misc/internals/tempname.h @@ -3,13 +3,14 @@  #define	__need_size_t  #include <stddef.h> +#include <sys/types.h>  /* Disable support for $TMPDIR */  extern int ___path_search (char *tmpl, size_t tmpl_len, const char *dir,  	        const char *pfx /*, int try_tmpdir */) attribute_hidden;  #define __path_search(tmpl, tmpl_len, dir, pfx, try_tmpdir) ___path_search(tmpl, tmpl_len, dir, pfx) -extern int __gen_tempname (char *__tmpl, int __kind) attribute_hidden; +extern int __gen_tempname (char *__tmpl, int __kind, mode_t mode) attribute_hidden;  /* The __kind argument to __gen_tempname may be one of: */  #define __GT_FILE     0       /* create a file */ | 
