about summary refs log tree commit diff
path: root/sysdeps/posix/tempname.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-08-11 02:48:28 +0000
committerUlrich Drepper <drepper@redhat.com>2007-08-11 02:48:28 +0000
commitd7e23b02a40384be1eaf00762ea36fd117c462cd (patch)
treef86b91f34427435c681737868d122ecda195af11 /sysdeps/posix/tempname.c
parentaa132749c85c62b1e28ae885b84c9fa8aed45dfb (diff)
downloadglibc-d7e23b02a40384be1eaf00762ea36fd117c462cd.tar.gz
glibc-d7e23b02a40384be1eaf00762ea36fd117c462cd.tar.xz
glibc-d7e23b02a40384be1eaf00762ea36fd117c462cd.zip
* nscd/connections.c: Use O_CLOEXEC is possible. Use mkostemp
	instead of mkstemp.

	* misc/Makefile (routines): Add mkostemp and mkostemp64.
	* misc/Versions: Export mkostemp and mkostemp64 for GLIBC_2.7.
	* misc/mkostemp.c: New file.
	* misc/mkostemp64.c: New file.
	* stdlib/stdlib.h: Declare the new functions.
	* sysdeps/posix/tempname.c: Add new parameter which is added to
	the flags for open.  Remove __GT_BIGFILE handling.
	* stdio-common/tempname.c: Likewise.
	* include/stdio.h: Adjust __gen_tempname prototype.
	Renumber __GT_* constants.
	* libio/oldtmpfile.c: Adjust for __gen_tempname interface change.
	* misc/mkdtemp.c: Likewise.
	* misc/mkstemp.c: Likewise.
	* misc/mkstemp64.c: Likewise.
	* misc/mktemp.c: Likewise.
	* stdio-common/tempnam.c: Likewise.
	* stdio-common/tmpfile.c: Likewise.
	* stdio-common/tmpfile64.c: Likewise.
	* stdio-common/tmpnam.c: Likewise.
	* stdio-common/tmpnam_r.c: Likewise.
Diffstat (limited to 'sysdeps/posix/tempname.c')
-rw-r--r--sysdeps/posix/tempname.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c
index c8973a0852..eab658da31 100644
--- a/sysdeps/posix/tempname.c
+++ b/sysdeps/posix/tempname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1999, 2000, 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2001, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -37,9 +37,8 @@
 #endif
 #ifndef __GT_FILE
 # define __GT_FILE	0
-# define __GT_BIGFILE	1
-# define __GT_DIR	2
-# define __GT_NOCREATE	3
+# define __GT_DIR	1
+# define __GT_NOCREATE	2
 #endif
 
 #if STDC_HEADERS || _LIBC
@@ -220,12 +219,11 @@ static const char letters[] =
 			at the time of the call.
    __GT_FILE:		create the file using open(O_CREAT|O_EXCL)
 			and return a read-write fd.  The file is mode 0600.
-   __GT_BIGFILE:	same as __GT_FILE but use open64().
    __GT_DIR:		create a directory, which will be mode 0700.
 
    We use a clever algorithm to get hard-to-predict names. */
 int
-__gen_tempname (char *tmpl, int kind)
+__gen_tempname (char *tmpl, int flags, int kind)
 {
   int len;
   char *XXXXXX;
@@ -298,11 +296,9 @@ __gen_tempname (char *tmpl, int kind)
       switch (kind)
 	{
 	case __GT_FILE:
-	  fd = __open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
-	  break;
-
-	case __GT_BIGFILE:
-	  fd = __open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+	  fd = __open (tmpl,
+		       (flags & ~ACCESSPERMS)
+		       | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
 	  break;
 
 	case __GT_DIR: