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
__fbufsize.c
__flbf.c
__fpending.c
__fpurge.c
__freadable.c
__freading.c
__fsetlocking.c
__fwritable.c
__fwriting.c
bug-fopena+.c
bug-fseek.c
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c
bug-rewind2.c
bug-rewind.c
bug-ungetc2.c
bug-ungetc3.c
bug-ungetc4.c
bug-ungetc.c
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c
bug-wmemstream1.c
bug-wsetpos.c
clearerr_u.c
clearerr.c
Depend
fcloseall.c
feof_u.c
feof.c
ferror_u.c
ferror.c
filedoalloc.c
fileno.c
fileops.c
fmemopen.c
fputc_u.c
fputc.c
fputwc_u.c
fputwc.c
freopen64.c
freopen.c
fseek.c
fseeko64.c
fseeko.c
ftello64.c
ftello.c
fwide.c
fwprintf.c
fwscanf.c
genops.c
getc_u.c
getc.c
getchar_u.c
getchar.c
getwc_u.c
getwc.c
getwchar_u.c
getwchar.c
iofclose.c
iofdopen.c
iofflush_u.c
iofflush.c
iofgetpos64.c
iofgetpos.c
iofgets_u.c
iofgets.c
iofgetws_u.c
iofgetws.c
iofopen64.c
iofopen.c
iofopncook.c
iofputs_u.c
iofputs.c
iofputws_u.c
iofputws.c
iofread_u.c
iofread.c
iofsetpos64.c
iofsetpos.c
ioftell.c
iofwide.c
iofwrite_u.c
iofwrite.c
iogetdelim.c
iogetline.c
iogets.c
iogetwline.c
iolibio.h
iopadn.c
iopopen.c
ioputs.c
ioseekoff.c
ioseekpos.c
iosetbuffer.c
iosetvbuf.c
ioungetc.c
ioungetwc.c
iovdprintf.c
iovsprintf.c
iovsscanf.c
iovswscanf.c
iowpadn.c
libc_fatal.c
libio.h
libioP.h
Makefile
memstream.c
obprintf.c
oldfileops.c
oldfmemopen.c
oldiofclose.c
oldiofdopen.c
oldiofgetpos64.c
oldiofgetpos.c
oldiofopen.c
oldiofsetpos64.c
oldiofsetpos.c
oldiopopen.c
oldpclose.c
oldstdfiles.c
oldtmpfile.c
pclose.c
peekc.c
putc_u.c
putc.c
putchar_u.c
putchar.c
putwc_u.c
putwc.c
putwchar_u.c
putwchar.c
rewind.c
setbuf.c
setlinebuf.c
stdfiles.c
stdio.c
stdio.h
strfile.h
strops.c
swprintf.c
swscanf.c
test-fmemopen.c
test-freopen.c
test-freopen.sh
tst_getwc.c
tst_getwc.input
tst_putwc.c
tst_swprintf.c
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c
tst-bz22415.c
tst-eof.c
tst-ext2.c
tst-ext.c
tst-fgetc-after-eof.c
tst-fgetwc.c
tst-fgetwc.input
tst-fgetws.c
tst-fopenloc2.c
tst-fopenloc.c
tst-fputws.c
tst-freopen.c
tst-fseek.c
tst-ftell-active-handler.c
tst-ftell-append.c
tst-ftell-partial-wide.c
tst-fwrite-error.c
tst-memstream1.c
tst-memstream2.c
tst-memstream3.c
tst-mmap2-eofsync.c
tst-mmap-eofsync.c
tst-mmap-fflushsync.c
tst-mmap-offend.c
tst-mmap-setvbuf.c
tst-popen1.c
tst-setvbuf1.c
tst-sscanf.c
tst-swscanf.c
tst-ungetwc1.c
tst-ungetwc2.c
tst-widetext.c
tst-widetext.input
tst-wmemstream1.c
tst-wmemstream2.c
tst-wmemstream3.c
vasprintf.c
Versions
vscanf.c
vsnprintf.c
vswprintf.c
vtables.c
vwprintf.c
vwscanf.c
wfiledoalloc.c
wfileops.c
wgenops.c
wmemstream.c
wprintf.c
wscanf.c
wstrops.c