Fix failure to cleanup wide stream buffers in preparation for BZ#16734 fix
Paul Pluzhnikov
ppluzhnikov@gmail.com
Sun Jul 12 19:22:00 GMT 2015
Greetings,
In preparation for BZ#16734 fix, I've build libc with (not intended to commit):
diff --git a/libio/libioP.h b/libio/libioP.h
index d8604ca..d1699de 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -719,7 +719,7 @@ extern _IO_off64_t _IO_seekpos_unlocked (_IO_FILE
*, _IO_off64_t, int)
# endif
#endif
-#if _G_HAVE_MMAP
+#if _G_HAVE_MMAP && 0
# include <unistd.h>
# include <fcntl.h>
... etc.
This results in mtrace test failure:
FAIL: misc/tst-error1-mem
Attached patch fixes the test failure.
Thanks,
--
Paul Pluzhnikov
2015-07-12 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #16734]
* libio/genops.c (_IO_unbuffer_all): Free wide buffer as well.
-------------- next part --------------
diff --git a/libio/genops.c b/libio/genops.c
index 0f5e800..e13b3d1 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -977,6 +977,9 @@ _IO_unbuffer_all (void)
_IO_SETBUF (fp, NULL, 0);
+ if (fp->_mode > 0)
+ _IO_wsetb (fp, NULL, NULL, 0);
+
#ifdef _IO_MTSAFE_IO
if (cnt < MAXTRIES && fp->_lock != NULL)
_IO_lock_unlock (*fp->_lock);
More information about the Libc-alpha
mailing list