Fix for Access Violation in Loader.c

Robert Shearman R.J.Shearman at warwick.ac.uk
Sun May 11 20:21:49 CDT 2003


Hi,

current_modref is not initialized to the current modref, causing
find_forwarded_export to try and dereference a NULL pointer. I guess this
was a copy and paste error when the functions were moved into NTDLL. I
wasn't sure what side-effects initializing current_modref properly would
have, so I just get the modref from the module handle, which may or may not
be right. I also haven't checked for occurances of this bug anywhere else in
the file.

License: LGPL
ChangeLog:
- Fix NULL pointer error when displaying error message about missing
forwarded export
-------------- next part --------------
Index: wine/dlls/ntdll/loader.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/loader.c,v
retrieving revision 1.24
diff -u -r1.24 loader.c
--- wine/dlls/ntdll/loader.c	8 May 2003 04:13:26 -0000	1.24
+++ wine/dlls/ntdll/loader.c	11 May 2003 23:32:19 -0000
@@ -123,7 +123,7 @@
 
     if (!(wm = MODULE_FindModule( mod_name )))
     {
-        ERR("module not found for forward '%s' used by '%s'\n", forward, current_modref->filename );
+        ERR("module not found for forward '%s' used by '%s'\n", forward, get_modref(module)->filename );
         return NULL;
     }
     if ((exports = RtlImageDirectoryEntryToData( wm->ldr.BaseAddress, TRUE,
@@ -134,7 +134,7 @@
     {
         ERR("function not found for forward '%s' used by '%s'."
             " If you are using builtin '%s', try using the native one instead.\n",
-            forward, current_modref->filename, current_modref->modname );
+            forward, get_modref(module)->filename, get_modref(module)->modname );
     }
     return proc;
 }



More information about the wine-patches mailing list