diff options
author | Zack Weinberg <zackw@panix.com> | 2018-02-10 16:24:17 -0500 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2018-02-10 16:24:17 -0500 |
commit | 402ecba487804e9196769f39a8d157847d3b3104 (patch) | |
tree | a3520f093faa45dcb88e6ed8a97d9c5ad2f98e64 /malloc/malloc.c | |
parent | 4f5b921eb9b775aa3549a9bcd684c3013132f04b (diff) | |
download | glibc-402ecba487804e9196769f39a8d157847d3b3104.tar glibc-402ecba487804e9196769f39a8d157847d3b3104.tar.gz glibc-402ecba487804e9196769f39a8d157847d3b3104.tar.bz2 glibc-402ecba487804e9196769f39a8d157847d3b3104.zip |
[BZ #22830] malloc_stats: restore cancellation for stderr correctly.
malloc_stats means to disable cancellation for writes to stderr while
it runs, but it restores stderr->_flags2 with |= instead of =, so what
it actually does is disable cancellation on stderr permanently.
[BZ #22830]
* malloc/malloc.c (__malloc_stats): Restore stderr->_flags2
correctly.
* malloc/tst-malloc-stats-cancellation.c: New test case.
* malloc/Makefile: Add new test case.
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r-- | malloc/malloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c index f8e7250f70..3224b3a899 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -5009,7 +5009,7 @@ __malloc_stats (void) fprintf (stderr, "max mmap regions = %10u\n", (unsigned int) mp_.max_n_mmaps); fprintf (stderr, "max mmap bytes = %10lu\n", (unsigned long) mp_.max_mmapped_mem); - ((_IO_FILE *) stderr)->_flags2 |= old_flags2; + ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); } |