[coverity] Don't close uninitialized handle on VXD error path

Mike Hearn mike at plan99.net
Thu Apr 6 15:35:02 CDT 2006


Mike Hearn <mike at plan99.net>
Don't close uninitialized handle on VXD error path

diff --git a/dlls/kernel/vxd.c b/dlls/kernel/vxd.c
index 5d16684..2a004a0 100644
--- a/dlls/kernel/vxd.c
+++ b/dlls/kernel/vxd.c
@@ -179,7 +179,7 @@ HANDLE VXD_Open( LPCWSTR filenameW, DWOR
 {
     static const WCHAR dotVxDW[] = {'.','v','x','d',0};
     int i;
-    HANDLE handle;
+    HANDLE handle = INVALID_HANDLE_VALUE;
     HMODULE module;
     WCHAR *p, name[16];
 
@@ -254,10 +254,14 @@ HANDLE VXD_Open( LPCWSTR filenameW, DWOR
     }
 
     ERR("too many open VxD modules, please report\n" );
-    CloseHandle( handle );
+    
+    if (handle)
+    {
+        CloseHandle( handle );
+        handle = 0;
+    }
     FreeLibrary( module );
-    handle = 0;
-
+    
 done:
     RtlLeaveCriticalSection( &vxd_section );
     if (!DuplicateHandle( GetCurrentProcess(), handle, GetCurrentProcess(), &handle, 0,



More information about the wine-patches mailing list