summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-02-10 10:39:03 +0100
committerCorinna Vinschen <corinna@vinschen.de>2021-02-10 10:42:38 +0100
commitd0e0a59e7880739abe47bf217ee958c6233c6ef7 (patch)
treec407a8072697188572cf8118eabefe51375f5322
parent5f0913df13f227aa8087ed39ae1ac5ddf98e5671 (diff)
downloadcygnal-d0e0a59e7880739abe47bf217ee958c6233c6ef7.tar.gz
cygnal-d0e0a59e7880739abe47bf217ee958c6233c6ef7.tar.bz2
cygnal-d0e0a59e7880739abe47bf217ee958c6233c6ef7.zip
Cygwin: check path_conv_handle for NULL before trying to dup it
path_conv_handle::dup calls DuplicateHandle unconditionally, but we only have a handle in some cases. Check handle for being non-NULL before calling DuplicateHandle. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/path.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index 33e7fdf6a..fe4dd5478 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -105,9 +105,10 @@ public:
}
inline void dup (const path_conv_handle &pch)
{
- if (!DuplicateHandle (GetCurrentProcess (), pch.handle (),
- GetCurrentProcess (), &hdl,
- 0, TRUE, DUPLICATE_SAME_ACCESS))
+ if (pch.handle ()
+ && !DuplicateHandle (GetCurrentProcess (), pch.handle (),
+ GetCurrentProcess (), &hdl,
+ 0, TRUE, DUPLICATE_SAME_ACCESS))
hdl = NULL;
}
inline HANDLE handle () const { return hdl; }