glibc/libio
Adhemerval Zanella fdb7d390dd libio: fmemopen rewrite to POSIX compliance
This patch added a new fmemopen version, for glibc 2.22, that aims to be
POSIX complaint.  It fixes some long-stading glibc fmemopen issues, such
as:

* it changes the way fseek with SEEK_END works on fmemopen to seek
  relative to buffer size instead of first '\0'.  This is default mode and
  'b' opening mode does not change internal behavior (bz#6544).

* fix apending opening mode to use as start position either first null
  byte of len specified in function call (bz#13152 and #13151).

* remove binary option 'b' and internal different handling (bz#12836)

* fix seek/SEE_END with negative values (bz#14292).

A compatibility symbol is provided to with old behavior for older symbols
version (2.2.5).

	* include/stdio.h (fmemopen): Remove hidden prototype.
	(__fmemopen): Add new hidden prototype.
	* libio/Makefile: Add oldfmemopen object.
	* libio/Versions [GLIBC_2.22]: Add new fmemopen symbol.
	* libio/fmemopen.c (__fmemopen): Function rewrite to be POSIX
	compliance.
	* libio/oldfmemopen.c: New file: old fmemopen implementation for
	symbol compatibility.
	* stdio-common/Makefile [tests]: Add new tst-fmemopen3.
	* stdio-common/psiginfo.c [psiginfo]: Call __fmemopen instead of
	fmemopen.
	* stdio-common/tst-fmemopen3.c: New file: more fmemopen tests, focus
	on append and read mode.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.22]: Add
	fmemopen.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
	[GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist [GLIBC_2.22]:
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist [GLIBC_2.22]: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist [GLIBC_2.22]: Likewise.
2015-07-08 12:07:21 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fbufsize.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__flbf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fpending.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fpurge.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__freadable.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__freading.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fsetlocking.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fwritable.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
__fwriting.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
bug-fopena+.c
bug-fseek.c
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c
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
bug-ungetc3.c
bug-ungetc4.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
bug-ungetc.c
bug-ungetwc1.c Fix libio/bug-ungetwc1.c warning. 2014-11-27 16:01:04 +00:00
bug-ungetwc2.c
bug-wfflush.c
bug-wmemstream1.c
bug-wsetpos.c
clearerr_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
clearerr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Depend
fcloseall.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
feof_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
feof.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ferror_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ferror.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
filedoalloc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fileno.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fileops.c Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flags 2015-07-08 13:53:11 +05:30
fmemopen.c libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
fputc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fputc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fputwc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fputwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
freopen64.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
freopen.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
fseek.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fseeko64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fseeko.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ftello64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ftello.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fwide.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fwprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fwscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
genops.c Cleanup: in preparation for fixing BZ #16734, fix memory leaks exposed by 2015-03-08 09:46:53 -07:00
getc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getchar_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getchar.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getwc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getwchar_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
getwchar.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofclose.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofdopen.c Minor cleanups in libio/iofdopen.c 2015-03-23 13:46:36 -07:00
iofflush_u.c Fix getpass fflush_unlocked namespace (bug 18540). 2015-06-17 20:14:18 +00:00
iofflush.c Fix getpass fflush_unlocked namespace (bug 18540). 2015-06-17 20:14:18 +00:00
iofgetpos64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofgetpos.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofgets_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofgets.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofgetws_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofgetws.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofopen64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofopen.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
iofopncook.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
iofputs_u.c Fix syslog fputs_unlocked namespace (bug 18530). 2015-06-12 22:36:38 +00:00
iofputs.c Fix syslog fputs_unlocked namespace (bug 18530). 2015-06-12 22:36:38 +00:00
iofputws_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofputws.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofread_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofread.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofsetpos64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofsetpos.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ioftell.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofwide.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
iofwrite_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iofwrite.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iogetdelim.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iogetline.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iogets.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iogetwline.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iolibio.h
iopadn.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iopopen.c Cleanup: add missing #include's 2015-02-17 16:03:41 -08:00
ioputs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ioseekoff.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ioseekpos.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iosetbuffer.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iosetvbuf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ioungetc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ioungetwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iovdprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iovsprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iovsscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
iovswscanf.c Fix swscanf vswscanf namespace (bug 18542). 2015-06-17 20:15:22 +00:00
iowpadn.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libc_fatal.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libio.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
libioP.h Fix indentation to match nesting in previous commit 2015-05-22 13:35:45 +02:00
Makefile libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
memstream.c Fix open_memstream namespace (bug 18498). 2015-06-05 23:32:46 +00:00
obprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldfileops.c Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flags 2015-07-08 13:53:11 +05:30
oldfmemopen.c libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
oldiofclose.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldiofdopen.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
oldiofgetpos64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldiofgetpos.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldiofopen.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
oldiofsetpos64.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldiofsetpos.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldiopopen.c Avoid some aliasing violations in libio 2015-05-22 11:40:04 +02:00
oldpclose.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldstdfiles.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
oldtmpfile.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
pclose.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
peekc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putchar_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putchar.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putwc_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putwchar_u.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
putwchar.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
rewind.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
setbuf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
setlinebuf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stdfiles.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stdio.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stdio.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strfile.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strops.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
swprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
swscanf.c Fix swscanf vswscanf namespace (bug 18542). 2015-06-17 20:15:22 +00:00
test-fmemopen.c Fix buffer overflow for writes to memory buffer stream (bug 18549) 2015-06-25 15:54:09 +02:00
test-freopen.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
test-freopen.sh Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst_getwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst_getwc.input
tst_putwc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst_swprintf.c
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c Fix libio/tst-atime not to presume ST_NOATIME exists. 2015-02-06 12:24:16 -08:00
tst-eof.c
tst-ext2.c
tst-ext.c
tst-fgetwc.c
tst-fgetwc.input
tst-fgetws.c
tst-fopenloc2.c
tst-fopenloc.c Fix minor formatting violation. 2015-02-25 13:11:26 -08:00
tst-fputws.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-freopen.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-ftell-active-handler.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-ftell-append.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-ftell-partial-wide.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-fwrite-error.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-memstream1.c
tst-memstream2.c Adjust timeouts for some tests, to accommodate slow processors, 2015-02-22 01:05:02 -08: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. 2015-01-02 16:29:47 +00:00
tst-popen1.c
tst-setvbuf1.c
tst-sscanf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-swscanf.c
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. 2015-01-02 16:29:47 +00:00
tst-widetext.input Rename Oriya locale to Odia (bug 15601) 2013-11-20 17:47:41 +05:30
tst-wmemstream1.c
tst-wmemstream2.c
vasprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Versions libio: fmemopen rewrite to POSIX compliance 2015-07-08 12:07:21 -03:00
vscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vsnprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vswprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vwprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
vwscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wfiledoalloc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wfileops.c Use "|" instead of "+" when combine the _IO_LINE_BUF and _IO_UNBUFFERED flags 2015-07-08 13:53:11 +05:30
wgenops.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemstream.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wprintf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wstrops.c Fix BZ #17269 -- _IO_wstr_overflow integer overflow 2015-02-22 12:01:47 -08:00