glibc/stdio-common
Adhemerval Zanella f9123b5003 libio: Update internal fmemopen position after write (BZ #20005)
Current GLIBC fmemopen fails with a simple testcase:

  char buffer[500] = "x";
  FILE *stream;
  stream = fmemopen(buffer, 500, "r+");
  fwrite("fish",sizeof(char),5,stream);
  printf("pos-1:%ld\n",ftell(stream));
  fflush(stream);
  printf("pos-2:%ld\n",ftell(stream));

It returns:

  pos-1:5
  pos-2:0

Where it should return:

  pos-1:5
  pos-2:5

This is due the internal write function does not correctly update the internal
object position state and then the seek operation returns a wrong value.  This
patch fixes it.

It fixes both BZ #20005 and BZ #19230 (marked as duplicated). A new test is
added to check for such case.

Tested on x86_64 and i686.

	* libio/fmemopen.c (fmemopen_write): Update internal position after
	write.
	* stdio-common/Makefile (tests): Add tst-fmemopen4.c.
	* stdio-common/tst-fmemopen4.c: New file..
2016-04-26 17:40:25 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_i18n_number.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
asprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug1.c Update. 1999-07-17 23:56:47 +00:00
bug1.input
bug2.c
bug3.c
bug4.c
bug5.c Update. 1998-07-04 10:39:13 +00:00
bug6.c
bug6.input
bug7.c
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c Update. 1998-06-15 14:55:03 +00:00
bug13.c Update. 2000-07-29 06:45:51 +00:00
bug14.c Update. 2003-01-28 07:32:19 +00:00
bug16.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
bug17.c [BZ #3902] 2007-01-22 16:18:03 +00:00
bug18.c * libio/wstrops.c (_IO_wstr_underflow): Clear errno before 2007-07-07 21:38:43 +00:00
bug18a.c * libio/wstrops.c (_IO_wstr_underflow): Clear errno before 2007-07-07 21:38:43 +00:00
bug19.c * stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF 2007-07-08 04:41:34 +00:00
bug19a.c * stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF 2007-07-08 04:41:34 +00:00
bug20.c * stdio-common/Makefile (tests): Add bug20. 2007-10-28 16:45:27 +00:00
bug21.c Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00:00
bug22.c Bump up stdio bug22 timeout from 30 seconds to 60 seconds 2012-05-17 12:59:08 -04:00
bug23-2.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-3.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-4.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23.c Fix allocation when handling positional parameters in printf. 2011-02-20 07:59:49 -05:00
bug24.c Add test for BZ 13114 2011-08-20 09:22:16 -04:00
bug25.c 2012-05-24 Jeff Law <law@redhat.com> 2012-05-24 21:30:43 -06:00
bug26.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Depend Update. 2000-07-29 06:45:51 +00:00
dprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errlist.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fxprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getline.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getw.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_fscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_scanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vfscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
isoc99_vsscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Makefile libio: Update internal fmemopen position after write (BZ #20005) 2016-04-26 17:40:25 -03:00
perror.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf_fp.c Fix strfmon_l: Use specified locale for number formatting [BZ #19633] 2016-04-14 12:21:53 +02:00
printf_fphex.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf_size.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parse.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parsemb.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf-parsewc.c Update. 2003-06-11 23:22:36 +00:00
printf-prs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
printf.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
psiginfo-data.h Fix typos. 2013-10-12 14:47:50 +02:00
psiginfo-define.h * locale/langinfo.h: nl_langinfo_l is in POSIX 2008. 2009-02-26 06:18:24 +00:00
psiginfo.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
psignal.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
renameat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08:00
scanf5.c * tst-trans.c: Include <stdlib.h> and <string.h>. 2000-06-21 12:39:22 +00:00
scanf7.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08:00
scanf8.c
scanf9.c Update. 2000-12-15 16:03:57 +00:00
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
scanf12.c Update. 2000-07-22 07:26:13 +00:00
scanf12.input Update. 1999-02-07 00:06:12 +00:00
scanf13.c Avoid warning in scanf test. 2009-10-30 09:23:24 -07:00
scanf14.c Add macros for diagnostic control, use for scanf %a tests. 2014-12-10 00:41:19 +00:00
scanf15.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf16.c * libio/stdio.h (vscanf): Fix -std=c99 redirect. 2008-05-24 18:14:36 +00:00
scanf17.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
siglist.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
snprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdio_lim.h.in Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
temptest.c * malloc/memusagestat.c (main): Use return instead of exit to 2000-12-31 10:52:32 +00:00
test_rdwr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-fseek.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-fwrite.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
test-popen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-vfprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tfformat.c Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
tiformat.c Update. 2000-06-17 19:22:43 +00:00
tllformat.c Update. 1999-02-14 20:03:55 +00:00
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpfile.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-cookie.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fdopen.c Update. 2002-12-17 10:34:02 +00:00
tst-ferror.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-ferror.input
tst-fgets.c * posix/tst-execle1.c (do_test): Add a const. 2005-12-27 22:50:12 +00:00
tst-fileno.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmemopen2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmemopen3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmemopen4.c libio: Update internal fmemopen position after write (BZ #20005) 2016-04-26 17:40:25 -03:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fphex.c Clean up tst-fphex test 2012-03-08 03:02:24 -05:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fwrite.c [BZ #1078] 2005-09-27 19:40:49 +00:00
tst-gets.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-gets.input Update. 2001-02-15 19:57:43 +00:00
tst-grouping.c Fix grouping when rounding increases number of integer digits. 2011-01-12 20:37:51 -05:00
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-obprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-perror.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-popen2.c * libio/iopopen.c (_IO_new_proc_open): Don't close child_std_end 2007-07-19 17:03:08 +00:00
tst-popen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-printf.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-printfsz.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-rndseek.c 2002-10-12 Roland McGrath <roland@redhat.com> 2002-10-12 18:45:26 +00:00
tst-setvbuf1.c * stdio-common/Makefile: Add rules to build and run tst-setvbuf1. 2008-07-08 16:32:55 +00:00
tst-setvbuf1.expect * stdio-common/Makefile: Add rules to build and run tst-setvbuf1. 2008-07-08 16:32:55 +00:00
tst-sprintf2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf3.c Increase internal precision of ldbl-128ibm decimal printf [BZ #19853] 2016-03-31 12:14:33 -05:00
tst-sprintf.c stdio-common: Include <libc-internal.h> in some tests 2014-12-15 11:29:09 -06:00
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-swprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-swscanf.c * stdio-common/Makefile (tests): Add tst-swscanf. 2007-02-18 09:21:24 +00:00
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-unbputc.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-ungetc.c Update. 2002-12-19 09:18:01 +00:00
tst-unlockedio.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-vfprintf-width-prec.c vfprintf: Fix memory with large width and precision [BZ #19931] 2016-04-25 14:10:26 +02:00
tst-wc-printf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tstdiomisc.c Eliminate -Wno-format from printf/scanf tests. 2014-12-11 13:47:44 -08:00
tstgetln.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tstscanf.input
Versions Add missing } in Versions file. 2014-02-28 11:07:43 -08:00
vfprintf.c vfprintf: Fix memory with large width and precision [BZ #19931] 2016-04-25 14:10:26 +02:00
vfscanf.c Silence some false positive warnings for gcc 4.7 2016-01-21 09:11:17 -05:00
vfwprintf.c Update. 1999-06-16 22:55:47 +00:00
vfwscanf.c Update. 2000-06-29 04:12:28 +00:00
vprintf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xbug.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00