aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2007-05-22 12:43:31 +0000
committerCorinna Vinschen <corinna@vinschen.de>2007-05-22 12:43:31 +0000
commit542a6016e5663b0100e01da008141bc9591d1b34 (patch)
tree1fbf410f160203bbabb66a7b3cc0e3d732683f3f /winsup/cygwin
parentba75e8c878ecda8daa400f9ccb3ce463bef066b5 (diff)
downloadnewlib-542a6016e5663b0100e01da008141bc9591d1b34.zip
newlib-542a6016e5663b0100e01da008141bc9591d1b34.tar.gz
newlib-542a6016e5663b0100e01da008141bc9591d1b34.tar.bz2
* path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
Open directory with inheriting enabled.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/path.cc5
2 files changed, 8 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e9047b2..f23f5e2 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
+ Open directory with inheriting enabled.
+
2007-05-21 Christian Franke <franke@computer.org>
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 3fadeb8..1bd7cff 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -4224,7 +4224,8 @@ cwdstuff::set (const char *win32_cwd, const char *posix_cwd, bool doit)
if (win32_cwd)
{
- cwd_lock.acquire ();
+ if (!cwd_lock.acquired ())
+ cwd_lock.acquire ();
if (doit)
{
/* We utilize the user parameter block. The directory is
@@ -4252,7 +4253,7 @@ cwdstuff::set (const char *win32_cwd, const char *posix_cwd, bool doit)
goto out;
}
h = CreateFile (win32_cwd, FILE_TRAVERSE, FILE_SHARE_VALID_FLAGS,
- NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS,
+ &sec_none, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS,
NULL);
if (h == INVALID_HANDLE_VALUE)
{