summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
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/path.cc
parentba75e8c878ecda8daa400f9ccb3ce463bef066b5 (diff)
downloadcygnal-542a6016e5663b0100e01da008141bc9591d1b34.tar.gz
cygnal-542a6016e5663b0100e01da008141bc9591d1b34.tar.bz2
cygnal-542a6016e5663b0100e01da008141bc9591d1b34.zip
* path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
Open directory with inheriting enabled.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 3fadeb8c1..1bd7cff23 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)
{