https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=d0e0a59e7880739abe47bf217ee958c6233c6ef7

commit d0e0a59e7880739abe47bf217ee958c6233c6ef7
Author: Corinna Vinschen <[email protected]>
Date:   Wed Feb 10 10:39:03 2021 +0100

    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 <[email protected]>

Diff:
---
 winsup/cygwin/path.h | 7 ++++---
 1 file 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; }

Reply via email to