[newlib-cygwin] Cygwin: check path_conv_handle for NULL before trying to dup it

Corinna Vinschen corinna@sourceware.org
Wed Feb 10 09:52:07 GMT 2021


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

commit d0e0a59e7880739abe47bf217ee958c6233c6ef7
Author: Corinna Vinschen <corinna@vinschen.de>
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 <corinna@vinschen.de>

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; }


More information about the Cygwin-cvs mailing list