From cb27c3470980f084c037b5f13941c6aab0362e87 Mon Sep 17 00:00:00 2001 From: corinna Date: Tue, 22 May 2007 12:43:23 +0000 Subject: [PATCH] * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock. Open directory with inheriting enabled. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/path.cc | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e9047b2885..f23f5e2b1e 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2007-05-22 Corinna Vinschen + + * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock. + Open directory with inheriting enabled. + 2007-05-21 Christian Franke * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 3fadeb8c1a..1bd7cff237 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) { -- 2.11.0