summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 5a0bc903b..a8b64da98 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -4329,6 +4329,7 @@ cwdstuff::set (const char *win32_cwd, const char *posix_cwd, bool doit)
strcpy (as.Buffer + len, "\\");
++as.Length;
}
+ RtlAcquirePebLock ();
if (current_codepage == ansi_cp)
RtlAnsiStringToUnicodeString (
&get_user_proc_parms ()->CurrentDirectoryName,
@@ -4339,11 +4340,9 @@ cwdstuff::set (const char *win32_cwd, const char *posix_cwd, bool doit)
&as, FALSE);
PHANDLE phdl = &get_user_proc_parms ()->CurrentDirectoryHandle;
if (*phdl)
- {
- HANDLE old_h = *phdl;
- *phdl = h;
- CloseHandle (old_h);
- }
+ CloseHandle (*phdl);
+ *phdl = h;
+ RtlReleasePebLock ();
}
}
/* If there is no win32 path or it has the form c:xxx, get the value */