glibc/libio
Xi Ruoyao 64b1a44183 libio: Add nonnull attribute for most FILE * arguments in stdio.h
During the review of a GCC analyzer test case, we found most stdio
functions accepting a FILE * argument expect it to be nonnull and just
segfault when the argument is NULL.  Add nonnull attribute for them.

fflush and fflush_unlocked are well defined when __stream is NULL so
they are not touched.

For fputs, fgets, fread, fwrite, fprintf, vfprintf, and their unlocked
version, if __stream is empty but there is nothing to read or write,
they did not segfault.  But the standard disallow __stream to be empty
here, so nonnull attribute is also added for them.  Note that this may
blow up some old code already subtly broken.

Also add __nonnull for _chk variants and __fortify_function versions for
them.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Alejandro Colomar <alx@kernel.org>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2023-09-26 20:11:38 -04:00
..
bits libio: Add nonnull attribute for most FILE * arguments in stdio.h 2023-09-26 20:11:38 -04:00
__fbufsize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__flbf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__fpending.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__fpurge.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__freadable.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__freading.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__fsetlocking.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__fwritable.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
__fwriting.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
bug-fopena+.c
bug-fseek.c tests: replace fread by xfread 2023-06-13 19:59:08 -04:00
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c tests: replace system by xsystem 2023-06-19 09:15:05 -04:00
bug-rewind2.c
bug-rewind.c
bug-ungetc2.c
bug-ungetc3.c tests: replace write by xwrite 2023-06-01 12:40:05 -04:00
bug-ungetc4.c tests: replace write by xwrite 2023-06-01 12:40:05 -04:00
bug-ungetc.c tests: replace write by xwrite 2023-06-01 12:40:05 -04:00
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c tests: replace write by xwrite 2023-06-01 12:40:05 -04:00
bug-wmemstream1.c
bug-wsetpos.c tests: replace write by xwrite 2023-06-01 12:40:05 -04:00
clearerr_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
clearerr.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Depend
fcloseall.c Move libc_freeres_ptrs and libc_subfreeres to hidden/weak functions 2023-03-27 13:57:55 -03:00
feof_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
feof.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ferror_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ferror.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
filedoalloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fileno.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fileops.c fileops: Don't process ,ccs= as individual mode flags (BZ#18906) 2023-07-05 21:24:06 +00:00
fmemopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fputc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fputc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fputwc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fputwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
freopen64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
freopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fseek.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fseeko64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fseeko.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ftello64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ftello.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fwide.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fwprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fwscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
genops.c Always do locking when accessing streams (bug 15142, bug 14697) 2023-07-03 09:55:43 +02:00
getc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getchar_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getchar.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getwc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getwchar_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getwchar.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofclose.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofdopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofflush_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofflush.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgetpos64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgetpos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgets_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgets.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgetws_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofgetws.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofopen64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofopncook.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
iofputs_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofputs.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofputws_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofputws.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofread_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofsetpos64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofsetpos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ioftell.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofwide.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofwrite_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iofwrite.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iogetdelim.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iogetline.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iogets.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iogetwline.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iolibio.h
iopadn.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iopopen.c system: Add "--" after "-c" for sh (BZ #28519) 2023-03-28 10:12:30 -03:00
ioputs.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ioseekoff.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ioseekpos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iosetbuffer.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iosetvbuf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ioungetc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ioungetwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iovdprintf.c libio: Update number of written bytes in dprintf implementation 2023-01-31 22:22:02 +01:00
iovsprintf.c stdio-common: Handle -1 buffer size in __sprintf_chk & co (bug 30039) 2023-01-25 08:01:00 +01:00
iovsscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iovswscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
iowpadn.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libc_fatal.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libio-macros.sym libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
libio.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libioP.h Always do locking when accessing streams (bug 15142, bug 14697) 2023-07-03 09:55:43 +02:00
Makefile Exclude routines from fortification 2023-07-05 16:59:48 +02:00
memstream.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
obprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldfileops.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
oldfmemopen.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
oldiofclose.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofdopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofgetpos64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofgetpos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofsetpos64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiofsetpos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldiopopen.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
oldpclose.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldstdfiles.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
oldtmpfile.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
pclose.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
peekc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putchar_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putchar.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putwc_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putwchar_u.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
putwchar.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
rewind.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
setbuf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
setlinebuf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
stdfiles.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
stdio.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
stdio.h libio: Add nonnull attribute for most FILE * arguments in stdio.h 2023-09-26 20:11:38 -04:00
strfile.h libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
strops.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
swprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
swscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
test-fmemopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
test-freopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
test-freopen.sh Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst_getwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst_getwc.input
tst_putwc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst_swprintf.c
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c
tst-bz22415.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-bz24051.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-bz24153.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-bz24228.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-bz24228.map
tst-bz28828.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-bz28828.input
tst-cleanup-default-static.c
tst-cleanup-default.c
tst-cleanup-nostart-stop-gc-static.c
tst-cleanup-nostart-stop-gc.c
tst-cleanup-start-stop-gc-static.c
tst-cleanup-start-stop-gc.c
tst-cleanup.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-cleanup.exp
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 hurd: Fix tst-openloc 2023-07-20 23:42:56 +02:00
tst-fputws.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-freopen.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-fseek.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-ftell-active-handler.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-ftell-append.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-ftell-partial-wide.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-fwrite-error.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-getdelim.c getdelim: ensure error indicator is set on error (bug 29917) 2023-01-02 10:58:49 +01:00
tst-memstream1.c
tst-memstream2.c
tst-memstream3.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-memstream4.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-memstream.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-mmap2-eofsync.c
tst-mmap-eofsync.c
tst-mmap-fflushsync.c
tst-mmap-offend.c
tst-mmap-setvbuf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-popen1.c
tst-setvbuf1.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-sprintf-chk-ub.c
tst-sprintf-ub.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-sscanf.c
tst-swscanf.c
tst-ungetwc1.c
tst-ungetwc2.c
tst-vtables-common.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-vtables-interposed.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-vtables.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-wfile-sync.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-widetext.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-widetext.input
tst-wmemstream1.c
tst-wmemstream2.c
tst-wmemstream3.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-wmemstream4.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-wmemstream5.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
vasprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Versions
vscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
vsnprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
vswprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
vtables.c libio: Fix oversized __io_vtables 2023-09-08 23:00:04 +02:00
vwprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
vwscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wfiledoalloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wfileops.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
wgenops.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wmemstream.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00
wprintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wscanf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wstrops.c libio: Remove the usage of __libc_IO_vtables 2023-03-27 13:57:55 -03:00