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
bug1.input
bug2.c
bug3.c
bug4.c
bug5.c
bug6.c
bug6.input
bug7.c
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c
bug14.c
bug16.c
bug17.c
bug18.c
bug18a.c
bug19.c
bug19a.c
bug20.c
bug21.c
bug22.c
bug23-2.c
bug23-3.c
bug23-4.c
bug23.c
bug24.c
bug25.c
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
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
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
psiginfo-define.h
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
scanf5.c
scanf7.c
scanf8.c
scanf9.c
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
scanf12.c
scanf12.input
scanf13.c
scanf14.c
scanf15.c
scanf16.c
scanf17.c
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
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
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
tiformat.c
tllformat.c
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
tst-fdopen.c
tst-ferror.c
tst-ferror.input
tst-fgets.c
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
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fwrite.c
tst-gets.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-gets.input
tst-grouping.c
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-obprintf.c
tst-perror.c
tst-popen2.c
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
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-rndseek.c
tst-setvbuf1.c
tst-setvbuf1.expect
tst-sprintf2.c
tst-sprintf3.c Increase internal precision of ldbl-128ibm decimal printf [BZ #19853] 2016-03-31 12:14:33 -05:00
tst-sprintf.c
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-swprintf.c
tst-swscanf.c
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-unbputc.c
tst-unbputc.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-ungetc.c
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
tstdiomisc.c
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
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
vfwscanf.c
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