PATCH: findclose exception

Marcus Meissner marcus at jet.franken.de
Fri May 3 11:02:22 CDT 2002


Hi,

The Zak McKracken 2 Demo Installer crashes with FindClose(0xfffffffe). 
Since we already handle 0xffffffff and there is a page fault handler in
this function already, I just extend it to contain all critical parts.

Ciao, Marcus

License: LGPL
Changelog:
	FindClose: protect the GlobalLock for pagefaults too. 

Index: files/dos_fs.c
===================================================================
RCS file: /home/wine/wine/files/dos_fs.c,v
retrieving revision 1.103
diff -u -r1.103 dos_fs.c
--- files/dos_fs.c	2 Apr 2002 02:46:27 -0000	1.103
+++ files/dos_fs.c	3 May 2002 17:08:54 -0000
@@ -1806,14 +1806,17 @@
 {
     FIND_FIRST_INFO *info;
 
-    if ((handle == INVALID_HANDLE_VALUE) ||
-        !(info = (FIND_FIRST_INFO *)GlobalLock( handle )))
-    {
-        SetLastError( ERROR_INVALID_HANDLE );
-        return FALSE;
+    if (handle == INVALID_HANDLE_VALUE) {
+	SetLastError( ERROR_INVALID_HANDLE );
+	return FALSE;
     }
     __TRY
     {
+	if (!(info = (FIND_FIRST_INFO *)GlobalLock( handle )))
+	{
+	    SetLastError( ERROR_INVALID_HANDLE );
+	    return FALSE;
+	}
         if (info->dir) DOSFS_CloseDir( info->dir );
         if (info->path) HeapFree( GetProcessHeap(), 0, info->path );
     }



More information about the wine-patches mailing list