diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2007-05-22 12:43:31 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2007-05-22 12:43:31 +0000 |
commit | 542a6016e5663b0100e01da008141bc9591d1b34 (patch) | |
tree | 1fbf410f160203bbabb66a7b3cc0e3d732683f3f /winsup/cygwin | |
parent | ba75e8c878ecda8daa400f9ccb3ce463bef066b5 (diff) | |
download | newlib-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/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/path.cc | 5 |
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) { |