glibc/stdio-common
Zack Weinberg 4e2f43f842 Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319)
The _chk variants of all of the printf functions become much simpler.
This is the last thing that we needed _IO_acquire_lock_clear_flags2
for, so it can go as well.  I took the opportunity to make the headers
included and the names of all local variables consistent across all the
affected files.

Since we ultimately want to get rid of __no_long_double as well, it
must be possible to get all of the nontrivial effects of the _chk
functions by calling the _internal functions with appropriate flags.
For most of the __(v)xprintf_chk functions, this is covered by
PRINTF_FORTIFY plus some up-front argument checks that can be
duplicated.  However, __(v)sprintf_chk installs a custom jump table so
that it can crash instead of overflowing the output buffer.  This
functionality is moved to __vsprintf_internal, which now has a
'maxlen' argument like __vsnprintf_internal; to get the unsafe
behavior of ordinary (v)sprintf, pass -1 for that argument.

obstack_printf_chk and obstack_vprintf_chk are no longer in the same
file.

As a side-effect of the unification of both fortified and non-fortified
vdprintf initialization, this patch fixes bug 11319 for __dprintf_chk
and __vdprintf_chk, which was previously fixed only for dprintf and
vdprintf by the commit

commit 7ca890b88e
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Wed Feb 24 16:07:57 2010 -0800

    Fix reporting of I/O errors in *dprintf functions.

This patch adds a test case to avoid regressions.

Tested for powerpc and powerpc64le.
2018-12-05 18:15:43 -02:00
..
bits Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
_i18n_number.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
asprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
bug1.c
bug1.input
bug2.c
bug3.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug4.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug5.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug6.c
bug6.input
bug7.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c
bug14.c
bug16.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
bug17.c
bug18.c
bug18a.c
bug19.c
bug19a.c
bug20.c
bug21.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
bug22.c Disable -Wformat-overflow= warnings for some printf tests. 2018-11-01 17:13:55 +00:00
bug23-2.c
bug23-3.c
bug23-4.c
bug23.c
bug24.c
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. 2018-01-01 00:32:25 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Depend
dprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
errlist.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
fscanf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fxprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
gentempfd.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getline.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
getw.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
iovfscanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
iovfwscanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
isoc99_fscanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
isoc99_scanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
isoc99_sscanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
isoc99_vfscanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
isoc99_vscanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
isoc99_vsscanf.c Use SCANF_ISOC99_A instead of _IO_FLAGS2_SCANF_STD. 2018-12-05 18:15:42 -02:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
perror.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
printf_fp.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
printf_fphex.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
printf_size.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
printf-parse.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
printf-parsemb.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
printf-parsewc.c
printf-prs.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
printf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
printf.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
psiginfo-data.h
psiginfo-define.h
psiginfo.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
psignal.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
reg-printf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
renameat2.c Add renameat2 function [BZ #17662] 2018-07-05 19:00:10 +02:00
renameat.c Add renameat2 function [BZ #17662] 2018-07-05 19:00:10 +02: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
scanf7.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf8.c
scanf9.c
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
scanf12.c
scanf12.input
scanf13.c
scanf14.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf15.c
scanf16.c
scanf17.c
scanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
siglist.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
snprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
sprintf.c Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
sscanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
stdio_lim.h.in Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
temptest.c
test_rdwr.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
test-fseek.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
test-fwrite.c
test-popen.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
test-vfprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tfformat.c
tiformat.c
tllformat.c
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tmpfile.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-bz11319-fortify2.c Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
tst-bz11319.c Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
tst-cookie.c
tst-fdopen.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
tst-ferror.c
tst-ferror.input
tst-fgets.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-fileno.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fmemopen2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fmemopen3.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fmemopen4.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fphex.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tst-fseek.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-fwrite.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-gets.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-gets.input
tst-grouping.c
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-obprintf.c
tst-perror.c
tst-popen2.c
tst-popen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-printf.c Disable -Wformat-overflow= warnings for some printf tests. 2018-11-01 17:13:55 +00:00
tst-printf.sh stdio-common/tst-printf.c: Remove part under a non-free license [BZ #23363] 2018-07-03 18:29:16 +02:00
tst-printfsz-islongdouble.c ldbl-128ibm-compat: Add printf_size 2018-07-02 10:51:01 -03:00
tst-printfsz-islongdouble.sh ldbl-128ibm-compat: Add printf_size 2018-07-02 10:51:01 -03: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. 2018-01-01 00:32:25 +00:00
tst-renameat2.c Add renameat2 function [BZ #17662] 2018-07-05 19:00:10 +02:00
tst-rndseek.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-scanf-round.c Fix scanf rounding of negative floating-point numbers (bug 23280). 2018-06-19 11:52:18 +00:00
tst-setvbuf1.c
tst-setvbuf1.expect
tst-sprintf2.c
tst-sprintf3.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +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. 2018-01-01 00:32:25 +00:00
tst-swprintf.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tst-swscanf.c
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-unbputc.c
tst-unbputc.sh Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-ungetc.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
tst-unlockedio.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-vfprintf-mbs-prec.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-vfprintf-user-type.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-vfprintf-width-prec.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-wc-printf.c
tstdiomisc.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tstgetln.c Remove some unnecessary redefinitions of std symbols. 2018-02-05 19:58:01 -05:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tstscanf.input
Versions Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vfprintf-internal.c Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
vfprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
vfscanf-internal.c Use SCANF_LDBL_IS_DBL instead of __ldbl_is_dbl. 2018-12-05 18:15:42 -02:00
vfscanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vfwprintf-internal.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
vfwprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
vfwscanf-internal.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vfwscanf.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vprintf.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
xbug.c