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
..
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2013-06-05 20:44:03 +00:00
2014-12-10 00:41:19 +00:00
2012-05-17 12:59:08 -04:00
2014-12-15 10:09:33 +01:00
2014-12-15 10:09:33 +01:00
2014-12-15 10:09:33 +01:00
2012-05-24 21:30:43 -06:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-04-26 17:40:25 -03:00
2016-01-04 16:05:18 +00:00
2016-04-14 12:21:53 +02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2013-10-12 14:47:50 +02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2014-12-11 13:47:44 -08:00
2014-12-11 13:47:44 -08:00
2016-01-04 16:05:18 +00:00
2014-12-10 00:41:19 +00:00
2015-09-03 20:24:54 +00:00
2015-09-03 20:24:54 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2015-08-06 02:59:04 -04:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2013-06-07 22:24:35 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2014-11-05 15:24:08 +05:30
2015-08-06 02:59:04 -04:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-04-26 17:40:25 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2012-03-08 03:02:24 -05:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2014-11-05 15:24:08 +05:30
2014-11-05 15:24:08 +05:30
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-07 04:03:21 -05:00
2015-08-06 02:59:04 -04:00
2016-01-04 16:05:18 +00:00
2014-11-05 15:24:08 +05:30
2016-03-31 12:14:33 -05:00
2014-12-15 11:29:09 -06:00
2016-01-04 16:05:18 +00:00
2014-11-05 15:24:08 +05:30
2016-01-04 16:05:18 +00:00
2014-11-05 15:24:08 +05:30
2016-01-07 04:03:21 -05:00
2016-01-04 16:05:18 +00:00
2016-04-25 14:10:26 +02:00
2014-11-05 15:24:08 +05:30
2014-12-11 13:47:44 -08:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2014-02-28 11:07:43 -08:00
2016-04-25 14:10:26 +02:00
2016-01-21 09:11:17 -05:00
2016-01-04 16:05:18 +00:00
2015-10-16 20:21:49 +00:00