A busted MSI file

Mike Hearn mike at plan99.net
Fri Apr 28 17:22:51 CDT 2006


This MSI file for MSXML3:

   http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052b-42ff-9674-f752bdca9582&displaylang=en

does not work. It crashes inside custom code after
MsiGetPropertyW("CustomActionData") returns the empty string due to the
property not being found. A relay trace indicates this sort of thing is
happening:

0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7d418 L"Will be installed to run from network") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7d270 L"MenuAllLocal") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7cfd8 L"VerdanaBold13") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7be68 L"(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST=\"F\")") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd7ba40 L"{80}") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd6b650 L"Cancel") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=00000001 ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd6b5e8 L"Description2") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd69660 L"Organization") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd695c0 L"DisableRollbackMessage") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975
0010:Call kernel32.lstrcmpW(7fdc68a8 L"CustomActionData",7fd68050 L"HashPart2") ret=7fa5b975
0010:Ret  kernel32.lstrcmpW() retval=ffffffff ret=7fa5b975

In other words it seems to not actually be scanning property names but
rather random strings from the stringtable. Does any MSI guru want to take
a look? I spent an hour on this and didn't get very far, maybe you guys
will have more luck ...

thanks -mike




More information about the wine-devel mailing list