glibc/libio
Florian Weimer 4e8a6346cd libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236]
These unmangled function pointers reside on the heap and could
be targeted by exploit writers, effectively bypassing libio vtable
validation.  Instead, we ignore these pointers and always call
malloc or free.

In theory, this is a backwards-incompatible change, but using the
global heap instead of the user-supplied callback functions should
have little application impact.  (The old libstdc++ implementation
exposed this functionality via a public, undocumented constructor
in its strstreambuf class.)
2018-06-01 10:41:03 +02:00
..
bits Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
__fbufsize.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__flbf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__fpending.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__fpurge.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__freadable.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__freading.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__fsetlocking.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__fwritable.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__fwriting.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
bug-fopena+.c Update. 2002-08-27 06:41:29 +00:00
bug-fseek.c Update. 2002-07-24 11:18:48 +00:00
bug-ftell.c * libio/bug-ftell.c (do_test): Add a cast. 2003-11-01 21:11:05 +00:00
bug-memstream1.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
bug-mmap-fflush.c Update. 2002-08-27 12:10:11 +00:00
bug-rewind2.c Fix warnings in fwscanf / rewind tests. 2014-11-26 12:54:39 +00:00
bug-rewind.c Fix warnings in fwscanf / rewind tests. 2014-11-26 12:54:39 +00:00
bug-ungetc2.c Update. 2003-09-06 09:56:14 +00:00
bug-ungetc3.c Update. 2004-11-09 07:05:27 +00:00
bug-ungetc4.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
bug-ungetc.c 2002-07-24 Roland McGrath <roland@frob.com> 2002-07-24 09:34:59 +00:00
bug-ungetwc1.c Fix libio/bug-ungetwc1.c warning. 2014-11-27 16:01:04 +00:00
bug-ungetwc2.c Update. 2002-04-24 21:09:14 +00:00
bug-wfflush.c * libio/bug-wfflush.c (do_test): Call rewind instead of fsetpos. 2002-11-11 06:55:22 +00:00
bug-wmemstream1.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
bug-wsetpos.c Fix fsetpos on wide stream. 2009-09-02 19:45:33 -07:00
clearerr_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
clearerr.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
Depend New file, libio needs localedata for tests. 2000-07-29 07:57:34 +00:00
fcloseall.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
feof_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
feof.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ferror_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ferror.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
filedoalloc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fileno.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fileops.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
fmemopen.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fputc_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fputc.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
fputwc_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fputwc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
freopen64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
freopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fseek.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fseeko64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fseeko.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ftello64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ftello.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fwide.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
fwprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fwscanf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
genops.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
getc_u.c Fix -Os getc_unlocked linknamespace, localplt issues (bug 15105, bug 19463). 2018-02-21 18:01:11 +00:00
getc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getchar_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getchar.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
getwc_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getwc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getwchar_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getwchar.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
iofclose.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iofdopen.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
iofflush_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofflush.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofgetpos64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofgetpos.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofgets_u.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iofgets.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iofgetws_u.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iofgetws.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iofopen64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofopen.c Remove legacy configuration knobs from libio. 2018-02-21 14:13:21 -05:00
iofopncook.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofputs_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofputs.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofputws_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofputws.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofread_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofread.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofsetpos64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofsetpos.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ioftell.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofwide.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofwrite_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iofwrite.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iogetdelim.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
iogetline.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iogets.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
iogetwline.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iolibio.h hurd: Avoid more libc.so local PLTs 2018-04-03 00:36:33 +00:00
iopadn.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iopopen.c Remove legacy configuration knobs from libio. 2018-02-21 14:13:21 -05:00
ioputs.c hurd: Avoid more libc.so local PLTs 2018-04-03 00:36:33 +00:00
ioseekoff.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ioseekpos.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iosetbuffer.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iosetvbuf.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
ioungetc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
ioungetwc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iovdprintf.c Remove legacy configuration knobs from libio. 2018-02-21 14:13:21 -05:00
iovsprintf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iovsscanf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iovswscanf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
iowpadn.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
libc_fatal.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
libio.h Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
libioP.h Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
Makefile [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
memstream.c libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00
obprintf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldfileops.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
oldfmemopen.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldiofclose.c Remove _IO_file_flags define. 2018-02-21 14:22:50 -05:00
oldiofdopen.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
oldiofgetpos64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldiofgetpos.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldiofopen.c Remove legacy configuration knobs from libio. 2018-02-21 14:13:21 -05:00
oldiofsetpos64.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldiofsetpos.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldiopopen.c Remove legacy configuration knobs from libio. 2018-02-21 14:13:21 -05:00
oldpclose.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
oldstdfiles.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
oldtmpfile.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pclose.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
peekc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
putc_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
putc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
putchar_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
putchar.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
putwc_u.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
putwc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
putwchar_u.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
putwchar.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
rewind.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
setbuf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
setlinebuf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
stdfiles.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
stdio.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
stdio.h Don't install libio.h or _G_config.h. 2018-02-07 10:07:31 -05:00
strfile.h libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00
strops.c libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00
swprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
swscanf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-fmemopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-freopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-freopen.sh Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst_getwc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst_getwc.input Update. 2000-06-23 06:22:36 +00:00
tst_putwc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst_swprintf.c Fix format strings. 2002-09-30 07:47:16 +00:00
tst_swscanf.c Update. 2001-02-09 17:57:28 +00:00
tst_wprintf2.c Add dependencies on needed locales in each subdir tests (bug 18969) 2015-10-12 15:18:08 +02:00
tst_wprintf.c Update. 2000-06-17 19:22:43 +00:00
tst_wscanf.c Update. 2001-02-09 17:57:28 +00:00
tst_wscanf.input Update. 1999-06-16 22:55:47 +00:00
tst-atime.c Fix libio/tst-atime not to presume ST_NOATIME exists. 2015-02-06 12:24:16 -08:00
tst-bz22415.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-eof.c pdate. 2002-07-23 00:31:41 +00:00
tst-ext2.c * libio/Makefile (tests): Add tst-ext2. 2007-10-13 07:33:09 +00:00
tst-ext.c Update. 2001-03-27 00:16:51 +00:00
tst-fgetc-after-eof.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name. 2009-06-15 17:27:48 -07:00
tst-fgetwc.input 2009-02-04 Ulrich Drepper <drepper@redhat.com> 2009-02-04 21:27:48 +00:00
tst-fgetws.c Fix format strings. 2002-09-30 07:47:16 +00:00
tst-fopenloc2.c [BZ #2173] 2006-01-19 01:35:28 +00:00
tst-fopenloc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fputws.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-freopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-ftell-active-handler.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-ftell-append.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-ftell-partial-wide.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-fwrite-error.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-memstream1.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-memstream2.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-memstream3.c libio: Rename _FWRITE to FWRITE_FUNC 2018-01-29 23:00:17 +01:00
tst-mmap2-eofsync.c 2016-06-11 Paul Pluzhnikov <ppluzhnikov@google.com> 2016-06-11 14:50:16 -07:00
tst-mmap-eofsync.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
tst-mmap-fflushsync.c * locale/xlocale.h (struct __locale_struct): New member `__names'. 2002-08-30 10:36:44 +00:00
tst-mmap-offend.c * locale/xlocale.h (struct __locale_struct): New member `__names'. 2002-08-30 10:36:44 +00:00
tst-mmap-setvbuf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-popen1.c * sysdeps/unix/sysv/linux/syscalls.list: Add __pipe2 alias. 2008-07-27 18:26:13 +00:00
tst-setvbuf1.c [BZ #2337] 2006-12-13 23:17:54 +00:00
tst-sscanf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-swscanf.c Update. 2002-02-26 18:08:08 +00:00
tst-ungetwc1.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-ungetwc2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-widetext.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-widetext.input Finish change from “Bengali” to “Bangla” 2017-09-09 12:41:54 +02:00
tst-wmemstream1.c * posix/glob.c (glob_in_dir): Add some comments and asserts to 2006-09-30 15:09:35 +00:00
tst-wmemstream2.c * posix/glob.c (glob_in_dir): Add some comments and asserts to 2006-09-30 15:09:35 +00:00
tst-wmemstream3.c libio: Rename _FWRITE to FWRITE_FUNC 2018-01-29 23:00:17 +01:00
vasprintf.c libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00
Versions Single threaded stdio optimization 2017-07-04 16:05:12 +01:00
vscanf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
vsnprintf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
vswprintf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
vtables.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
vwprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
vwscanf.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
wfiledoalloc.c Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
wfileops.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
wgenops.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
wmemstream.c libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00
wprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
wscanf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
wstrops.c libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236] 2018-06-01 10:41:03 +02:00