glibc/stdio-common
Adhemerval Zanella e0d2eb5a79 linux: Implement tmpfile with O_TMPFILE (BZ#21530)
This patch adds O_TMPFILE support to tmpfile on Linux.  This is
similar to the previous suggestion by Andreas Schwab [1] with the
difference the file descriptor creation is parameterized to
compartmentalize Linux only open flags (O_TMPFILE) on sysdeps.

Checked on x86_64-linux-gnu.

	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
	Andreas Schwab  <schwab@suse.de>

	[BZ #21530]
	* include/stdio.h (__gen_tempfd): New function.
	* stdio-common/Makefile (routines): Add gentempfd.
	* stdio-common/gentempfd.c: New file.
	* sysdeps/unix/sysv/linux/gentempfd.c: Likewise.
	* stdio-common/tmpfile.c (tmpfile): First try to use a system specific
	unnamed file first.

[1] https://sourceware.org/ml/libc-alpha/2017-06/msg01293.html
2017-09-01 09:52:47 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_i18n_number.h _i18n_number_rewrite: Use struct scratch_buffer 2017-06-29 09:34:45 +02:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
asprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bug1.c Update. 1999-07-17 23:56:47 +00:00
bug1.input
bug2.c
bug3.c
bug4.c
bug5.c
bug6.c
bug6.input
bug7.c
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c Update. 2000-07-29 06:45:51 +00:00
bug14.c Update. 2003-01-28 07:32:19 +00:00
bug16.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
bug17.c [BZ #3902] 2007-01-22 16:18:03 +00:00
bug18.c * libio/wstrops.c (_IO_wstr_underflow): Clear errno before 2007-07-07 21:38:43 +00:00
bug18a.c * libio/wstrops.c (_IO_wstr_underflow): Clear errno before 2007-07-07 21:38:43 +00:00
bug19.c * stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF 2007-07-08 04:41:34 +00:00
bug19a.c * stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF 2007-07-08 04:41:34 +00:00
bug20.c * stdio-common/Makefile (tests): Add bug20. 2007-10-28 16:45:27 +00:00
bug21.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
bug22.c Bump up stdio bug22 timeout from 30 seconds to 60 seconds 2012-05-17 12:59:08 -04:00
bug23-2.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-3.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-4.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23.c Fix allocation when handling positional parameters in printf. 2011-02-20 07:59:49 -05:00
bug24.c Add test for BZ 13114 2011-08-20 09:22:16 -04:00
bug25.c Another round of inclusion fixes for _ISOMAC testsuite. 2017-03-22 08:44:32 -04:00
bug26.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Depend Update. 2000-07-29 06:45:51 +00:00
dprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
errlist.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fxprintf.c getopt: clean up error reporting 2017-04-07 07:48:57 -04:00
gentempfd.c linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
getline.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getw.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_fscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_scanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vfscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vsscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
perror.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf_fp.c stdio-common: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
printf_fphex.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf_size.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf-parse.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf-parsemb.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf-parsewc.c Update. 2003-06-11 23:22:36 +00:00
printf-prs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
psiginfo-data.h Fix typos. 2013-10-12 14:47:50 +02:00
psiginfo-define.h * locale/langinfo.h: nl_langinfo_l is in POSIX 2008. 2009-02-26 06:18:24 +00:00
psiginfo.c Consolidate non cancellable write call 2017-08-18 10:53:47 -03:00
psignal.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
reg-printf.c Hide internal printf functions [BZ #18822/21986] 2017-08-22 07:50:57 -07:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
renameat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf5.c * tst-trans.c: Include <stdlib.h> and <string.h>. 2000-06-21 12:39:22 +00:00
scanf7.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf8.c
scanf9.c Update. 2000-12-15 16:03:57 +00:00
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
scanf12.c Update. 2000-07-22 07:26:13 +00:00
scanf12.input Update. 1999-02-07 00:06:12 +00:00
scanf13.c Avoid warning in scanf test. 2009-10-30 09:23:24 -07:00
scanf14.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf15.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf16.c * libio/stdio.h (vscanf): Fix -std=c99 redirect. 2008-05-24 18:14:36 +00:00
scanf17.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
siglist.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
snprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stdio_lim.h.in Remove __need_IOV_MAX and __need_FOPEN_MAX. 2017-06-14 07:51:30 -04:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
temptest.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
test_rdwr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-fseek.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-fwrite.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
test-popen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-vfprintf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tfformat.c Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
tiformat.c Update. 2000-06-17 19:22:43 +00:00
tllformat.c Update. 1999-02-14 20:03:55 +00:00
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tmpfile.c linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-cookie.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fdopen.c Update. 2002-12-17 10:34:02 +00:00
tst-ferror.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-ferror.input
tst-fgets.c * posix/tst-execle1.c (do_test): Add a const. 2005-12-27 22:50:12 +00:00
tst-fileno.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen2.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-fmemopen3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen4.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fphex.c Clean up tst-fphex test 2012-03-08 03:02:24 -05:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fwrite.c [BZ #1078] 2005-09-27 19:40:49 +00:00
tst-gets.c Clean up conditionals for declaration of gets. 2017-02-25 09:47:51 -05:00
tst-gets.input Update. 2001-02-15 19:57:43 +00:00
tst-grouping.c Fix grouping when rounding increases number of integer digits. 2011-01-12 20:37:51 -05:00
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-obprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-perror.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-popen2.c * libio/iopopen.c (_IO_new_proc_open): Don't close child_std_end 2007-07-19 17:03:08 +00:00
tst-popen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-printf.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printfsz.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-rndseek.c 2002-10-12 Roland McGrath <roland@redhat.com> 2002-10-12 18:45:26 +00:00
tst-setvbuf1.c * stdio-common/Makefile: Add rules to build and run tst-setvbuf1. 2008-07-08 16:32:55 +00:00
tst-setvbuf1.expect * stdio-common/Makefile: Add rules to build and run tst-setvbuf1. 2008-07-08 16:32:55 +00:00
tst-sprintf2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-sprintf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-swprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-swscanf.c * stdio-common/Makefile (tests): Add tst-swscanf. 2007-02-18 09:21:24 +00:00
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-unbputc.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-ungetc.c Update. 2002-12-19 09:18:01 +00:00
tst-unlockedio.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-vfprintf-mbs-prec.c vfprintf: Add test case for multi-byte/wide strings and precision 2017-06-29 09:33:44 +02:00
tst-vfprintf-user-type.c vfprintf: Fix tst-vfprintf-mbs-prec and tst-vfprintf-user-type 2017-06-29 16:46:03 +02:00
tst-vfprintf-width-prec.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-wc-printf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tstdiomisc.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tstgetln.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tstscanf.input
Versions Fix crypt snprintf namespace (bug 20829). 2016-11-16 22:46:48 +00:00
vfprintf.c stdio-common: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
vfscanf.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
vfwprintf.c Update. 1999-06-16 22:55:47 +00:00
vfwscanf.c Update. 2000-06-29 04:12:28 +00:00
vprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xbug.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00