diff options
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 5 |
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) { |