1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-10 05:03:06 +03:00

Don't lock string streams in stream cleanup code

This commit is contained in:
Ulrich Drepper
2011-09-09 16:15:25 -04:00
parent f3cdd46748
commit f22e10748f
3 changed files with 17 additions and 11 deletions

View File

@@ -1,3 +1,9 @@
2011-09-09 Ulrich Drepper <drepper@gmail.com>
[BZ #12847]
* libio/genops.c (INTDEF): For string streams the _lock pointer can
be NULL. Don't lock in this case.
2011-07-29 Denis Zaitceff <zaitceff@gmail.com>
* string/strncat.c (strncat): Undef the symbol in case it has been

4
NEWS
View File

@@ -9,8 +9,8 @@ Version 2.15
* The following bugs are resolved with this release:
9696, 12403, 12868, 12852, 12874, 12885, 12907, 12922, 12935, 13007,
13021, 13068, 13092, 13114, 13118, 13123, 13134, 13150
9696, 12403, 12847, 12868, 12852, 12874, 12885, 12907, 12922, 12935,
13007, 13021, 13068, 13092, 13114, 13118, 13123, 13134, 13150
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 1993,1995,1997-2002, 2003, 2004, 2006, 2007
/* Copyright (C) 1993,1995,1997-2002, 2003, 2004, 2006, 2007, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -959,7 +959,7 @@ _IO_unbuffer_write (void)
int cnt;
#define MAXTRIES 2
for (cnt = 0; cnt < MAXTRIES; ++cnt)
if (_IO_lock_trylock (*fp->_lock) == 0)
if (fp->_lock == NULL || _IO_lock_trylock (*fp->_lock) == 0)
break;
else
/* Give the other thread time to finish up its use of the
@@ -978,7 +978,7 @@ _IO_unbuffer_write (void)
_IO_SETBUF (fp, NULL, 0);
if (cnt < MAXTRIES)
if (cnt < MAXTRIES && fp->_lock != NULL)
_IO_lock_unlock (*fp->_lock);
}