[Fwd: patch for bz 6855]

Neil Marko nmarko at isyssoft.com
Sun Jan 7 16:54:46 CST 2007


Very sorry, I meant 0.9.28 and I forgot the patch!!!

Hope this helps.

Neil Marko

-------- Original Message --------
Subject: 	patch for bz 6855
Date: 	Sun, 07 Jan 2007 17:42:56 -0500
From: 	Neil Marko <nmarko at isyssoft.com>
To: 	wine-patches at winehq.org



Hi all:

Sorry that this is not in GIT format.  I do not have the time to learn 
this.  I just wanted to get Off2K installed on 9.2.28.

My determination of this bug is that around version 9.2.20 or so, 
dlls/msi/files.c was rewritten.  This bug seems to come from that.  In 
the routine ACTION_InstallFiles, there is a loop of all the file 
objects.  The first few steps of that loop attempt to detect a media 
change.  That ultimately causes a call to load_media_info.  The select 
statement in load_media_info has a where clause where table column  
LastSequence is greater than the value of the current file.  The problem 
I detected is that what is selected in the first pass through the loop 
is the media for the next sequence (COMCTL.OCX) and not the current 
file.  When a successful select occurs, the value of mi->last_sequence 
is updated from the select row, which is obviously not correct.  When we 
loop eventually to the file structure where we should have a media 
change (COMCTL.OCX), we do not do the media change and then we do not 
extract the compressed file and the install fails.  I solved this by 
simply setting mi->last_sequence to file->Sequence in the loop in 
ACTION_InstallFiles.

It is possible that maybe changing the ">=" to a "=" in the select in 
load_media_info might also solve this but I do not have enough knowledge 
about msi to know if that could cause any other problems.  I think we 
would also have to change the error condition so that not reading rows 
there would not cause a failure.  That seemed like a lot more work!

I eventually successfully installed Off2K on 9.2.28 with this.  
(Eventually since I have only an "upgrade" version of Off2K and 
therefore, some of the registry was not setup correctly.  I made it work.)

Hope this helps,

Neil Marko



-------------- next part --------------
--- files.c.old	2006-12-22 11:17:47.000000000 -0500
+++ files.c	2007-01-06 16:22:32.000000000 -0500
@@ -755,6 +755,9 @@
             rc = ERROR_INSTALL_FAILURE;
             break;
         }
+
+	mi->last_sequence = file->Sequence ;
+
     }
 
     free_media_info( mi );


More information about the wine-patches mailing list