From 217a74a85cdd60df236c296ad88142b78d35eccf Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 8 Dec 2014 15:13:38 +0100 Subject: Don't touch user-controlled stdio locks in forked child (bug 12847) The stdio locks for streams with the _IO_USER_LOCK flag should not be touched by internal code. --- sysdeps/nptl/fork.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sysdeps') diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c index a7dafa82ab..7ef693d529 100644 --- a/sysdeps/nptl/fork.c +++ b/sysdeps/nptl/fork.c @@ -46,7 +46,8 @@ fresetlockfiles (void) _IO_ITER i; for (i = _IO_iter_begin(); i != _IO_iter_end(); i = _IO_iter_next(i)) - _IO_lock_init (*((_IO_lock_t *) _IO_iter_file(i)->_lock)); + if ((_IO_iter_file (i)->_flags & _IO_USER_LOCK) == 0) + _IO_lock_init (*((_IO_lock_t *) _IO_iter_file(i)->_lock)); } -- cgit v1.2.3-65-gdbad