Don't let cabinet Extract() crash IE

Mike Hearn mike at theoretic.com
Fri Jan 2 10:28:54 CST 2004


Hi Stefan,

The attached patch is necessary for IE installer to work again. It seems
the magic value is not always correct: advpack derefs this value so it
probably points to a struct. I'll try and find out what it contains when
using the native DLL (if anything).

It seems to be optional, making it 0 allows IE to continue.

Index: dlls/cabinet/cabinet_main.c
===================================================================
RCS file: /home/wine/wine/dlls/cabinet/cabinet_main.c,v
retrieving revision 1.3
diff -u -r1.3 cabinet_main.c
--- dlls/cabinet/cabinet_main.c 30 Dec 2003 21:55:52 -0000      1.3
+++ dlls/cabinet/cabinet_main.c 2 Jan 2004 16:21:26 -0000
@@ -125,9 +125,10 @@
    * DXDDEX.CAB, DXMINI.CAB, SWFLASH.CAB on win2k
    * but it crashes the ie5.5 installer :-( . The native dll does not return
    * the four zeros. The value depends on the combination of the cab file and
-   * the destination path
+   * the destination path. It appears to be a pointer to an optional return struct.
+   * The IE6 installer derefs this value + 4. Contents currently unknown.
    */
-  dest->result2=0x130000;
+  dest->result2 = 0;
  
   LocalFree(dir);
  





More information about the wine-patches mailing list