glibc/libio
Joseph Myers 0dcc0b2f63 Fix fseek handling for mmap files after ungetc or fflush (bug 32529)
As discussed in bug 32529, fseek fails on files opened for reading
using mmap after ungetc.  The implementation of fseek for such files
has an offset computation that's also incorrect after fflush.  A
combined fix addresses both problems (with tests for both included as
well) and it seems reasonable to consider them a single bug.

Tested for x86_64.
2025-01-28 22:35:21 +00:00
..
bits libio: Start to return errors when flushing fwrite's buffer [BZ #29459] 2025-01-28 15:37:44 -03:00
Depend
Makefile Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Versions
__fbufsize.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__flbf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__fpending.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__fpurge.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__freadable.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__freading.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__fsetlocking.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__fwritable.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
__fwriting.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bug-fopena+.c
bug-fseek.c
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c
bug-rewind.c
bug-rewind2.c
bug-ungetc.c
bug-ungetc2.c
bug-ungetc3.c
bug-ungetc4.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c
bug-wmemstream1.c
bug-wsetpos.c libio/bug-wsetpos: Make the error message match the causing function 2024-05-13 12:50:48 +01:00
clearerr.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clearerr_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fcloseall.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
feof.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
feof_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ferror.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ferror_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
filedoalloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fileno.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fileops.c Fix fseek handling for mmap files after ungetc or fflush (bug 32529) 2025-01-28 22:35:21 +00:00
fmemopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fputc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fputc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fputwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fputwc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
freopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
freopen64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fseek.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fseeko.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fseeko64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ftello.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ftello64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fwide.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fwprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
genops.c Make fflush (NULL) flush input files (bug 32369) 2025-01-28 21:53:49 +00:00
getc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getchar.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getchar_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getwc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getwchar.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getwchar_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofclose.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofdopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofflush.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofflush_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgetpos.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgetpos64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgets.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgets_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgetws.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofgetws_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofopen64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofopncook.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofputs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofputs_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofputws.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofputws_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofread.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofread_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofsetpos.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofsetpos64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioftell.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofwide.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iofwrite.c libio: Start to return errors when flushing fwrite's buffer [BZ #29459] 2025-01-28 15:37:44 -03:00
iofwrite_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iogetdelim.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iogetline.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iogets.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iogetwline.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iolibio.h
iopadn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iopopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioputs.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioseekoff.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioseekpos.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iosetbuffer.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iosetvbuf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioungetc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ioungetwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iovdprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iovsprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iovsscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iovswscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
iowpadn.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc_fatal.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libio-macros.sym
libio.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libioP.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memstream.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
obprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldfileops.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldfmemopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofclose.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofdopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofgetpos.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofgetpos64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofsetpos.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiofsetpos64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldiopopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldpclose.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldstdfiles.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
oldtmpfile.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
pclose.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
peekc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putchar.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putchar_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putwc_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putwchar.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
putwchar_u.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
rewind.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
setbuf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
setlinebuf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stdfiles.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stdio.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
stdio.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strfile.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strops.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
swprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
swscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-fmemopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-fputs-unbuffered-full.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-fputws-unbuffered-full.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-freopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-freopen.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-asprintf-null.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-atime.c
tst-bz22415.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-bz24051.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-bz24153.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-bz24228.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-bz24228.map
tst-bz28828.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08: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 2025-01-01 11:22:09 -08:00
tst-cleanup.exp
tst-closeall.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-eof.c
tst-ext.c
tst-ext2.c
tst-fclose-unopened.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fclose-unopened2.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fclose-unopened2.input Add another test for fclose on an unopened file 2024-09-20 10:32:35 -04:00
tst-fdopen-seek-failure.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fgetc-after-eof.c
tst-fgetwc.c
tst-fgetwc.input
tst-fgetws.c
tst-fopen-compat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fopenloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fopenloc2.c
tst-fputws.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-freopen.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fseek.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ftell-active-handler.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ftell-append.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ftell-partial-wide.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-fwrite-error.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-getdelim.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memstream.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memstream1.c
tst-memstream2.c
tst-memstream3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-memstream4.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mmap-eofsync.c
tst-mmap-fflushsync.c
tst-mmap-offend.c
tst-mmap-setvbuf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-mmap2-eofsync.c
tst-popen-fork.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-popen1.c
tst-setvbuf1.c
tst-sprintf-chk-ub.c
tst-sprintf-ub.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-sscanf.c
tst-stderr-compat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-swscanf.c
tst-ungetwc1.c
tst-ungetwc2.c
tst-vtables-common.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-vtables-interposed.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-vtables.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wfile-sync.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-widetext.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-widetext.input
tst-wmemstream1.c
tst-wmemstream2.c
tst-wmemstream3.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wmemstream4.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-wmemstream5.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst_getwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst_getwc.input
tst_putwc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst_swprintf.c
tst_swscanf.c
tst_wprintf.c
tst_wprintf2.c
tst_wscanf.c
tst_wscanf.input
vasprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vsnprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vswprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vtables.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vwprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vwscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wfiledoalloc.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wfileops.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wgenops.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wmemstream.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wprintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wscanf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
wstrops.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00