about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2012-11-19 20:01:00 +0100
committerPino Toscano <toscano.pino@tiscali.it>2012-11-19 20:01:00 +0100
commite19af3803be804f2737788e62d243e425bb03011 (patch)
tree725b6d3e1e96ddea102a88887a5632b380bd2c71 /ChangeLog
parent942caa165645cf1cd0d65f8ecd4b4cbdfa32a34a (diff)
downloadglibc-e19af3803be804f2737788e62d243e425bb03011.tar.gz
glibc-e19af3803be804f2737788e62d243e425bb03011.tar.xz
glibc-e19af3803be804f2737788e62d243e425bb03011.zip
muntrace: reset file and hooks before finalizing the stream
fclose will call free, invoking its hook, then fprintf which would indirectly
try to allocate a buffer, and this can cause malloc to be used (thus its hook
to be invoked) if libio uses malloc instead of mmap; given any malloc/free hook
locks the internal lock, this leads to a deadlock.

To prevent this hook roundtrip at muntrace, first unset MALLSTREAM and the
hooks, and only after that close the trace file.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog3
1 files changed, 3 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fbac1c5d5d..1031d4d5c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-11-19  Pino Toscano  <toscano.pino@tiscali.it>
 
+	* malloc/mtrace.c (muntrace): Reset MALLSTREAM and the hooks before
+	finalizing MALLSTREAM.
+
 	* sysdeps/mach/hurd/syncfs.c: New file.
 
 2012-11-19  Siddhesh Poyarekar  <siddhesh@redhat.com>