glibc/stdio-common
Florian Weimer db3476aff1 libio: Implement vtable verification [BZ #20191]
This commit puts all libio vtables in a dedicated, read-only ELF
section, so that they are consecutive in memory.  Before any indirect
jump, the vtable pointer is checked against the section boundaries,
and the process is terminated if the vtable pointer does not fall into
the special ELF section.

To enable backwards compatibility, a special flag variable
(_IO_accept_foreign_vtables), protected by the pointer guard, avoids
process termination if libio stream object constructor functions have
been called earlier.  Such constructor functions are called by the GCC
2.95 libstdc++ library, and this mechanism ensures compatibility with
old binaries.  Existing callers inside glibc of these functions are
adjusted to call the original functions, not the wrappers which enable
vtable compatiblity.

The compatibility mechanism is used to enable passing FILE * objects
across a static dlopen boundary, too.
2016-06-23 20:01:52 +02:00
..
bits Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Depend Update. 2000-07-29 06:45:51 +00:00
Makefile libio: Update internal fmemopen position after write (BZ #20005) 2016-04-26 17:40:25 -03:00
Versions Add missing } in Versions file. 2014-02-28 11:07:43 -08:00
_i18n_number.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
asprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug1.c
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 Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00: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 2012-05-24 Jeff Law <law@redhat.com> 2012-05-24 21:30:43 -06:00
bug26.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errlist.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fxprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getline.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getw.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_fscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_scanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vfscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vsscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
perror.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parse.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parsemb.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parsewc.c Update. 2003-06-11 23:22:36 +00:00
printf-prs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf_fp.c Fix strfmon_l: Use specified locale for number formatting [BZ #19633] 2016-04-14 12:21:53 +02:00
printf_fphex.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf_size.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00: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 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
psignal.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
renameat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
scanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08:00
scanf5.c * tst-trans.c: Include <stdlib.h> and <string.h>. 2000-06-21 12:39:22 +00:00
scanf7.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08: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. 2016-01-04 16:05:18 +00:00
scanf12.c Update. 2000-07-22 07:26:13 +00:00
scanf12.input
scanf13.c Avoid warning in scanf test. 2009-10-30 09:23:24 -07:00
scanf14.c Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00: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
siglist.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
snprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdio_lim.h.in Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
temptest.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
test-fseek.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +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. 2016-01-04 16:05:18 +00:00
test-vfprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test_rdwr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00: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
tmpfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +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. 2016-01-04 16:05:18 +00:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmemopen2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmemopen3.c libio: Fix fmemopen append mode failure (BZ# 20012) 2016-04-29 19:25:17 -03:00
tst-fmemopen4.c libio: Update internal fmemopen position after write (BZ #20005) 2016-04-26 17:40:25 -03:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +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. 2016-01-04 16:05:18 +00:00
tst-fwrite.c [BZ #1078] 2005-09-27 19:40:49 +00:00
tst-gets.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00: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. 2016-01-04 16:05:18 +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-popen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
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-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-printfsz.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +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-sprintf.c stdio-common: Include <libc-internal.h> in some tests 2014-12-15 11:29:09 -06:00
tst-sprintf2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf3.c Increase internal precision of ldbl-128ibm decimal printf [BZ #19853] 2016-03-31 12:14:33 -05:00
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +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. 2016-01-04 16:05:18 +00:00
tst-unbputc.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-ungetc.c Update. 2002-12-19 09:18:01 +00:00
tst-unlockedio.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-vfprintf-width-prec.c vfprintf: Fix memory with large width and precision [BZ #19931] 2016-04-25 14:10:26 +02:00
tst-wc-printf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tstdiomisc.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08:00
tstgetln.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tstscanf.input
vfprintf.c libio: Implement vtable verification [BZ #20191] 2016-06-23 20:01:52 +02:00
vfscanf.c Silence some false positive warnings for gcc 4.7 2016-01-21 09:11:17 -05:00
vfwprintf.c
vfwscanf.c Update. 2000-06-29 04:12:28 +00:00
vprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xbug.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00