NTDLL - breaks MDAC Installation

Ray Jones rayjones at gmx.net
Mon Oct 17 07:54:12 CDT 2005


This patch:
___________________________


===================================================================
RCS file: /home/wine/wine/dlls/ntdll/loadorder.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- wine/dlls/ntdll/loadorder.c	2005/06/21 09:52:41	1.16
+++ wine/dlls/ntdll/loadorder.c	2005/07/07 18:26:11	1.17
@@ -80,12 +80,6 @@ static const enum loadorder_type default
     LOADORDER_BI, LOADORDER_DLL, 0
 };
 
-/* default for modules with an explicit path */
-static const enum loadorder_type default_path_loadorder[LOADORDER_NTYPES] =
-{
-    LOADORDER_DLL, LOADORDER_BI, 0
-};
-
 static const WCHAR separatorsW[] = {',',' ','\t',0};
 
 static int init_done;
@@ -608,11 +602,6 @@ void MODULE_GetLoadOrderW( enum loadorde
                    debugstr_loadorder(loadorder), debugstr_w(path) );
             goto done;
         }
-
-        /* and last the hard-coded default */
-        memcpy( loadorder, default_loadorder, sizeof(default_loadorder) );
-        TRACE( "got hardcoded default %s for %s\n",
-               debugstr_loadorder(loadorder), debugstr_w(path) );
     }
     else  /* module contains an explicit path */
     {
@@ -639,13 +628,13 @@ void MODULE_GetLoadOrderW( enum loadorde
                    debugstr_loadorder(loadorder), debugstr_w(path) );
             goto done;
         }
-
-        /* and last the hard-coded default */
-        memcpy( loadorder, default_path_loadorder,
sizeof(default_path_loadorder) );
-        TRACE( "got hardcoded path default %s for %s\n",
-               debugstr_loadorder(loadorder), debugstr_w(path) );
     }
 
+    /* and last the hard-coded default */
+    memcpy( loadorder, default_loadorder, sizeof(default_loadorder) );
+    TRACE( "got hardcoded default %s for %s\n",
+           debugstr_loadorder(loadorder), debugstr_w(path) );
+
  done:
     if (app_key) NtClose( app_key );
     RtlFreeHeap( GetProcessHeap(), 0, module );

___________________________

breaks the MDAC Installation, no matter which version you attempt to install.
Reversing the patch fixes the bug(?). (I've also "downdated" actual CVS-Version
of loadorder.c to 1.16 - it works .. at least for the installer, though I don't
know what it breaks on the other end.) 

I'm not really sure what exactly happens, the installer just says "Rolling back
MDAC .." assumingly just at the point where it's going to install the "Microsoft
XML parser".

If anyone likes to try to recreate the bug, you'll have to install IE, and  for
that you'll have to use Windows-Version Win98 and a NATIVE advpack.dll.






More information about the wine-devel mailing list