Avoid deadlock in flock(2)
* fcntl.cc (fcntl64): Don't lock fd table when performing locking. * flock.cc (flock): Ditto. (lockf): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
eeef727026
commit
41299df081
|
@ -1,3 +1,9 @@
|
|||
2015-11-05 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* fcntl.cc (fcntl64): Don't lock fd table when performing locking.
|
||||
* flock.cc (flock): Ditto.
|
||||
(lockf): Ditto.
|
||||
|
||||
2015-11-05 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* sigproc.cc (pending_signals::clear): Yet another fix to fix the fix.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* fcntl.cc: fcntl syscall
|
||||
|
||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2008, 2009,
|
||||
2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
|
||||
2010, 2011, 2012, 2013, 2014, 2015 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
|
@ -32,7 +32,9 @@ fcntl64 (int fd, int cmd, ...)
|
|||
{
|
||||
|
||||
debug_printf ("fcntl(%d, %d, ...)", fd, cmd);
|
||||
cygheap_fdget cfd (fd, true);
|
||||
|
||||
/* Don't lock the fd table when performing locking calls. */
|
||||
cygheap_fdget cfd (fd, cmd < F_GETLK || cmd > F_SETLKW);
|
||||
if (cfd < 0)
|
||||
__leave;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* flock.cc. NT specific implementation of advisory file locking.
|
||||
|
||||
Copyright 2003, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
|
||||
Copyright 2003, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
|
@ -1773,7 +1773,7 @@ flock (int fd, int operation)
|
|||
|
||||
__try
|
||||
{
|
||||
cygheap_fdget cfd (fd, true);
|
||||
cygheap_fdget cfd (fd);
|
||||
if (cfd < 0)
|
||||
__leave;
|
||||
|
||||
|
@ -1817,7 +1817,7 @@ lockf (int filedes, int function, off_t size)
|
|||
|
||||
__try
|
||||
{
|
||||
cygheap_fdget cfd (filedes, true);
|
||||
cygheap_fdget cfd (filedes);
|
||||
if (cfd < 0)
|
||||
__leave;
|
||||
|
||||
|
|
|
@ -65,3 +65,6 @@ Bug Fixes
|
|||
|
||||
- Workaround a bug in Windows 10 NLS handling.
|
||||
Addresses: https://cygwin.com/ml/cygwin/2015-10/msg00547.html
|
||||
|
||||
- Avoid unnecessry locking and thus a potential deadlock in flock(2).
|
||||
Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00095.html
|
||||
|
|
Loading…
Reference in New Issue