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