diff options
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index e48a2cdcd..a839c0ad7 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -3932,7 +3932,7 @@ fcwd_access_t::Free (PVOID heap) { /* Decrement the reference count. If it's down to 0, free structure from heap. */ - if (InterlockedDecrement (&ReferenceCount ()) == 0) + if (this && InterlockedDecrement (&ReferenceCount ()) == 0) { /* In contrast to pre-Vista, the handle on init is always a fresh one and not the handle inherited from the parent @@ -4320,8 +4320,7 @@ cwdstuff::override_win32_cwd (bool init, ULONG old_dismount_count) f_cwd->CopyPath (upp_cwd_str); upp_cwd_hdl = dir; RtlLeaveCriticalSection (peb.FastPebLock); - if (old_cwd) - old_cwd->Free (heap); + old_cwd->Free (heap); } else { |