http://bugs.winehq.org/show_bug.cgi?id=11759
Summary: Microsoft Silverlight installer - unimplemented functions Product: Wine Version: 0.9.56. Platform: Other URL: http://www.microsoft.com/silverlight/resources/install.a spx OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdiplus AssignedTo: wine-bugs@winehq.org ReportedBy: jeffzaroyko@gmail.com
Following on from bug 8099
When running the Microsoft Silverlight installer, it crashes with a message about two unimplemented functions
unimplemented function gdiplus.dll.GdipGetImagePaletteSize unimplemented function gdiplus.dll.GdipGetImageThumbnail
http://bugs.winehq.org/show_bug.cgi?id=11759
Jeff Zaroyko jeffzaroyko@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #1 from Lei Zhang thestig@google.com 2008-02-27 19:53:52 --- There's a student currently working on GdipGetImageThumbnail. Maybe we'll see a patch soon?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #2 from Lei Zhang thestig@google.com 2008-02-27 20:01:53 --- How much further can you get with a native gdiplus.dll?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #3 from Jeff Zaroyko jeffzaroyko@gmail.com 2008-02-27 20:11:42 --- Created an attachment (id=11017) --> (http://bugs.winehq.org/attachment.cgi?id=11017) +msi,warn+all
(In reply to comment #2)
How much further can you get with a native gdiplus.dll?
"Microsoft Silverlight could not be installed on your computer." "Click here for more information" -> "Message ID: 1500, The Microsoft Silverlight download is invalid. Please install the latest version from the Silverlight Download Page."
Last time I checked, it unpacks a 64kb (or thereabouts) msi file and then prints this message.
Attached is a log of +msi,warn+all
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #4 from James Hawkins truiken@gmail.com 2008-02-27 20:20:19 --- Why did you attach a +msi log?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #5 from Jeff Zaroyko jeffzaroyko@gmail.com 2008-02-27 20:27:15 --- (In reply to comment #4)
Why did you attach a +msi log?
A .msi is file being created and deleted.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #6 from James Hawkins truiken@gmail.com 2008-02-27 20:29:56 --- So? What does that have to do with the bug?
http://bugs.winehq.org/show_bug.cgi?id=11759
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #7 from Anastasius Focht focht@gmx.net 2008-02-28 01:53:32 --- Hello,
you need winecfg "Windows XP" and 'sh winetricks gdiplus'.
It's not msi bug (yet) ;-)
--- snip --- .. 0041:trace:wintrust:WinVerifyTrust (0xffffffff, {00aac56b-cd44-11d0-8cc2-00c04fc295ee}, 0x7eca1778) 0041:trace:wintrust:dump_wintrust_data 0x7eca1778 0041:trace:wintrust:dump_wintrust_data cbStruct: 48 0041:trace:wintrust:dump_wintrust_data pPolicyCallbackData: (nil) 0041:trace:wintrust:dump_wintrust_data pSIPClientData: (nil) 0041:trace:wintrust:dump_wintrust_data dwUIChoice: 2 0041:trace:wintrust:dump_wintrust_data fdwRevocationChecks: 00000000 0041:trace:wintrust:dump_wintrust_data dwUnionChoice: 1 0041:trace:wintrust:dump_file_info 0x7eca17a8 0041:trace:wintrust:dump_file_info cbStruct: 16 0041:trace:wintrust:dump_file_info pcwszFilePath: L"C:\temp\Silverlight.msi" 0041:trace:wintrust:dump_file_info hFile: (nil) 0041:trace:wintrust:dump_file_info pgKnownSubject: (null) 0041:trace:wintrust:dump_wintrust_data dwStateAction: 1 0041:trace:wintrust:dump_wintrust_data hWVTStateData: (nil) 0041:trace:wintrust:dump_wintrust_data pwszURLReference: (null) 0041:trace:wintrust:dump_wintrust_data dwProvFlags: 00001080 0041:trace:wintrust:dump_wintrust_data dwUIContext: 0 0041:trace:wintrust:WINTRUST_DefaultVerify (0xffffffff, {00aac56b-cd44-11d0-8cc2-00c04fc295ee}, 0x7eca1778) 0041:trace:wintrust:WintrustLoadFunctionPointers ({00aac56b-cd44-11d0-8cc2-00c04fc295ee} 0x142920) 0041:trace:wintrust:WintrustGetRegPolicyFlags 0x13a758 0041:trace:wintrust:SoftpubInitialize (0x13a738) 0041:trace:wintrust:SoftpubInitialize returning 00000000 0041:trace:wintrust:SoftpubLoadMessage (0x13a738) 0041:trace:wintrust:SOFTPUB_OpenFile returning 1 0041:trace:crypt:CryptSIPRetrieveSubjectGuid (L"C:\temp\Silverlight.msi" 0xa0 0x13a8fc) 0041:trace:wintrust:SOFTPUB_GetFileSubject returning 0 0041:trace:wintrust:SoftpubLoadMessage returning 1 (800b0003) 0041:trace:wintrust:WINTRUST_DefaultVerify returning 00000001 0041:trace:wintrust:WinVerifyTrust returning 00000001 .. --- snip ---
crypt32.CryptSIPRetrieveSubjectGuid() needs to be more fleshed out. Should belong to same (wintrust) category as http://bugs.winehq.org/show_bug.cgi?id=9929
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|gdiplus |wintrust Ever Confirmed|0 |1 Keywords| |Installer
--- Comment #8 from Austin English austinenglish@gmail.com 2008-03-03 04:52:41 --- Confirming.
http://bugs.winehq.org/show_bug.cgi?id=11759
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |juan_lang@yahoo.com
--- Comment #9 from Juan Lang juan_lang@yahoo.com 2008-07-31 12:54:48 --- I've sent some patches that should address the shortcomings in CryptSIPRetrieveSubjectGuid: http://www.winehq.org/pipermail/wine-patches/2008-July/058942.html http://www.winehq.org/pipermail/wine-patches/2008-July/058943.html http://www.winehq.org/pipermail/wine-patches/2008-July/058944.html http://www.winehq.org/pipermail/wine-patches/2008-July/058945.html http://www.winehq.org/pipermail/wine-patches/2008-July/058946.html http://www.winehq.org/pipermail/wine-patches/2008-July/058947.html http://www.winehq.org/pipermail/wine-patches/2008-July/058948.html http://www.winehq.org/pipermail/wine-patches/2008-July/058949.html
Setting my Windows version to Windows XP using winecfg and running 'sh winetricks gdiplus' doesn't get it to run, with or without the patches, so I'm unable to confirm that it actually fixes the installer. Anyone else care to have a go?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #10 from Anastasius Focht focht@gmx.net 2008-07-31 15:04:19 --- Hello,
--- quote --- Setting my Windows version to Windows XP using winecfg and running 'sh winetricks gdiplus' doesn't get it to run, with or without the patches, so I'm unable to confirm that it actually fixes the installer. Anyone else care to have a go? --- quote ---
I wonder how you tested ... After applying your patches and obligatory
$ git add dlls/msisip/Makefile.in $ ./tools/make_makefiles
I had to modify .spec file for MsiSIPGetSignedDataMsg() stub, adding real signature to not run into unimplemented call.
MsiSIPGetSignedDataMsg() doesn't fill encoding type out parameter, hence follow up errors. You need to add more error checking. CryptMsgOpenToDecode correctly fails due to invalid parameters but SOFTPUB_GetMessageFromFile() returns TRUE which should not happen.
--- snip --- .. 001d:Call msisip.MsiSIPGetSignedDataMsg(001526b8,00153290,00000000,7ed54518,0015b9e0) ret=607a7d6a 001d:Call ole32.StgOpenStorage(005676a0 L"Z:\home\focht\work\silverlight\Silverlight.msi",00000000,00000020,00000000,00000000,7ed543b4) ret=60d9b9a4 001d:Call KERNEL32.CreateFileW(005676a0 L"Z:\home\focht\work\silverlight\Silverlight.msi",80000000,00000001,00000000,00000003,10000080,00000000) ret=605b388e 001d:Ret KERNEL32.CreateFileW() retval=00000090 ret=605b388e 001d:Call KERNEL32.GetFileSize(00000090,00000000) ret=605b38b6 001d:Ret KERNEL32.GetFileSize() retval=0000d800 ret=605b38b6 .. 001d:Call KERNEL32.CreateFileMappingA(00000090,00000000,00000002,00000000,00000000,00000000) ret=605a5608 001d:Ret KERNEL32.CreateFileMappingA() retval=00000098 ret=605a5608 .. 001d:Call KERNEL32.MapViewOfFile(00000098,00000004,00000000,00000000,0000d800) ret=605a4729 001d:Ret KERNEL32.MapViewOfFile() retval=003e0000 ret=605a4729 .. 001d:Call KERNEL32.GetFullPathNameW(005676a0 L"Z:\home\focht\work\silverlight\Silverlight.msi",00000104,7ed540b4,00000000) ret=605b3a01 001d:Ret KERNEL32.GetFullPathNameW() retval=0000002e ret=605b3a01 001d:Ret ole32.StgOpenStorage() retval=00000000 ret=60d9b9a4 .. 001d:Call KERNEL32.lstrcmpiW(7ed542c8 L"\0005DigitalSignature",60d9c300 L"\0005DigitalSignature") ret=605aef79 001d:Ret KERNEL32.lstrcmpiW() retval=00000000 ret=605aef79 .. 001d:Call KERNEL32.UnmapViewOfFile(003e0000) ret=605a49ec 001d:Ret KERNEL32.UnmapViewOfFile() retval=00000001 ret=605a49ec .. 001d:Ret msisip.MsiSIPGetSignedDataMsg() retval=00000001 ret=607a7d6a 001d:trace:crypt:CryptSIPGetSignedDataMsg returning 1 001d:Call crypt32.CryptMsgOpenToDecode(00000000,00000000,00000000,00000000,00000000,00000000) ret=607e9c9b 001d:trace:crypt:CryptMsgOpenToDecode (00000000, 00000000, 00000000, 00000000, (nil), (nil)) 001d:Ret crypt32.CryptMsgOpenToDecode() retval=00000000 ret=607e9c9b 001d:Call ntdll.RtlFreeHeap(00110000,00000000,0015b9e0) ret=607ea236 001d:Ret ntdll.RtlFreeHeap() retval=00000001 ret=607ea236 001d:trace:wintrust:SOFTPUB_GetMessageFromFile returning 1 001d:Call crypt32.CertOpenStore(00000001,00000000,00000000,00000001,00000000) ret=607e9b73 001d:trace:crypt:CertOpenStore (#0001, 00000000, 00000000, 00000001, (nil)) 001d:trace:crypt:CRYPT_MsgOpenStore (0, 00000001, (nil)) 001d:trace:crypt:CertOpenStore (#0002, 00000000, 00000000, 00002000, (nil)) 001d:trace:crypt:CRYPT_MemOpenStore (0, 00002000, (nil)) .. 001d:trace:crypt:CryptMsgGetParam ((nil), 11, 0, 0x7ed543b4, 0x7ed543b8) <crashes later> --- snip ---
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #11 from Juan Lang juan_lang@yahoo.com 2008-07-31 15:36:20 ---
You need to add more error checking. CryptMsgOpenToDecode correctly fails due to invalid parameters but SOFTPUB_GetMessageFromFile() returns TRUE which should not happen.
Probably true, but that's a different bug methinks. I've sent an updated patch: http://www.winehq.org/pipermail/wine-patches/2008-July/058956.html The rest are unchanged. Have another go?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #12 from Anastasius Focht focht@gmx.net 2008-07-31 17:02:23 --- Hello,
--- quote --- I've sent an updated patch: http://www.winehq.org/pipermail/wine-patches/2008-July/058956.html The rest are unchanged. Have another go? --- quote ---
Sure ...
--- snip --- 0020:Call crypt32.CryptMsgOpenToDecode(00010001,00000000,00000000,00000000,00000000,00000000) ret=607f4c9b .. 0020:Ret crypt32.CryptMsgOpenToDecode() retval=00152888 ret=607f4c9b 0020:Call crypt32.CryptMsgUpdate(00152888,00152948,00000029,00000001) ret=607f4ccc 0020:trace:crypt:CryptMsgUpdate (0x152888, 0x152948, 41, 1) 0020:trace:crypt:CDecodeMsg_Update (0x152888, 0x152948, 41, 1) .. 0020:trace:crypt:CryptDecodeObjectEx (0x00000001, #0021, 0x14c7d8, 41, 0x00008000, (nil), 0x7ed54388, 0x7ed54384) 0020:trace:cryptasn:CRYPT_AsnDecodePKCSContentInfo 0x14c7d8, 41, 00008000, (nil), 0x7ed54388, 2127905776 0020:trace:cryptasn:CRYPT_AsnDecodePKCSContentInfoInternal 0x14c7d8, 41, 00000000, (nil), 2127905776, (nil) 0020:trace:cryptasn:CRYPT_AsnDecodeSequence 0x7ed5416c, 2, 0x14c7d8, 41, 00000000, (nil), (nil), 2127905776, (nil) 0020:trace:cryptasn:CRYPT_AsnDecodeSequence returning 0 (80093102) 0020:trace:crypt:CryptDecodeObjectEx returning 0 .. 0020:trace:wintrust:SOFTPUB_GetMessageFromFile returning 0 0020:trace:wintrust:SoftpubLoadMessage returning 1 (80093102) 0020:Ret wintrust.SoftpubLoadMessage() retval=00000001 ret=607f607a 0020:trace:wintrust:WINTRUST_DefaultVerify returning 80093102 0020:trace:wintrust:WinVerifyTrust returning 80093102 0020:Ret wintrust.WinVerifyTrust() retval=80093102 ret=0041fed8 --- snip ---
0x80093102 = CRYPT_E_ASN1_EOD
I dumped the input buffer (ASN1 sequence) for you:
--- dump --- 0x154090: 30 82 25 5a 06 09 2a 86 48 86 f7 0d 01 07 02 a0 0x1540A0: 82 25 4b 30 82 25 47 02 01 01 31 0b 30 09 06 05 0x1540B0: 2b 0e 03 02 1a 05 00 30 67 ... --- dump ---
0x30 -> universal class, constructed, tag 16 (sequence) 0x82 -> length of the contents stored in the following two bytes
0x25,0x5a -> content length is 0x255a bytes
The encoded length obviously exceeds cbEncoded (41) hence the bail out.
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #13 from Juan Lang juan_lang@yahoo.com 2008-07-31 17:55:05 --- Argh. Dumb error. This time I wrote my own test program that calls WinVerifyTrust, so I'm pretty sure I got it right: http://www.winehq.org/pipermail/wine-patches/2008-July/058962.html
Thanks for the testing.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #14 from Juan Lang juan_lang@yahoo.com 2008-08-04 10:32:13 --- I believe the wintrust bugs are gone from today's git, so it should be a gdiplus bug at this point. Anyone care to confirm? (It still doesn't work for me, even with the gdiplus override.)
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #15 from Anastasius Focht focht@gmx.net 2008-08-04 14:43:54 --- Hello,
--- quote --- I believe the wintrust bugs are gone from today's git, so it should be a gdiplus bug at this point. Anyone care to confirm? (It still doesn't work for me, even with the gdiplus override.) --- quote ---
Confirm the story is not finished? Sure ;-)
--- snip --- .. 0024:Call crypt32.CryptQueryObject(00000001,005676b8,00000400,0000000e,00000000,00000000,00000000,00000000,7ed3d7c0,7ed3d7c4,00000000) ret=0041ff02 0024:trace:crypt:CryptQueryObject (00000001, 0x5676b8, 00000400, 0000000e, 00000000, (nil), (nil), (nil), 0x7ed3d7c0, 0x7ed3d7c4, (nil)) 0024:Call KERNEL32.CreateFileW(005676b8 L"Z:\home\focht\work\silverlight\Silverlight.msi",80000000,00000001,00000000,00000003,00000080,00000000) ret=6079eb45 0024:Ret KERNEL32.CreateFileW() retval=00000090 ret=6079eb45 0024:Call KERNEL32.LoadLibraryA(607bd4e4 "imagehlp.dll") ret=607afd23 .. 0024:Ret KERNEL32.LoadLibraryA() retval=60e50000 ret=607afd23 0024:Call KERNEL32.GetProcAddress(60e50000,607bd4f1 "ImageGetCertificateData") ret=607afcf5 0024:Ret KERNEL32.GetProcAddress() retval=60e5807c ret=607afcf5 0024:Call imagehlp.ImageGetCertificateData(00000090,00000000,00000000,7ed3d688) ret=6079eb78 0024:Call KERNEL32.SetFilePointer(00000090,00000000,00000000,00000000) ret=60e58d5e 0024:Ret KERNEL32.SetFilePointer() retval=00000000 ret=60e58d5e 0024:Call KERNEL32.ReadFile(00000090,7ed3d4a8,00000040,7ed3d4e8,00000000) ret=60e58d93 0024:Ret KERNEL32.ReadFile() retval=00000001 ret=60e58d93 0024:Call KERNEL32.SetFilePointer(00000090,00000002,00000000,00000000) ret=60e58e07 0024:Ret KERNEL32.SetFilePointer() retval=00000002 ret=60e58e07 0024:Call KERNEL32.ReadFile(00000090,7ed3d3b0,000000f8,7ed3d4e8,00000000) ret=60e58e3c 0024:Ret KERNEL32.ReadFile() retval=00000001 ret=60e58e3c 0024:Call KERNEL32.SetFilePointer(00000090,ffffffff,00000000,00000000) ret=60e58f1e 0024:Ret KERNEL32.SetFilePointer() retval=ffffffff ret=60e58f1e 0024:Ret imagehlp.ImageGetCertificateData() retval=00000000 ret=6079eb78 0024:Call KERNEL32.CloseHandle(00000090) ret=6079eb94 0024:Ret KERNEL32.CloseHandle() retval=00000001 ret=6079eb94 0024:trace:crypt:CRYPT_QueryEmbeddedMessageObject returning 0 0024:trace:crypt:CryptQueryObject returning 0 0024:Ret crypt32.CryptQueryObject() retval=00000000 ret=0041ff02 .. --- snip ---
When HCRYPTMSG and HCERTSTORE for CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED type is requested you can't assume the file is a portable executable image and use imagehlp API. This won't work for other file types like cabinet images, catalogs, msi files etc. Each format requires a different procedure for retrieval.
So it might be feasible to determine the responsible provider (subject GUID) first and then use the provider to fetch the requested data (message).
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #16 from Juan Lang juan_lang@yahoo.com 2008-08-04 14:49:54 --- Oh, how very odd. Would you mind attaching a +wintrust,+crypt log for me to dig through? Thanks again.
http://bugs.winehq.org/show_bug.cgi?id=11759
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|wintrust |crypt32
--- Comment #17 from Juan Lang juan_lang@yahoo.com 2008-08-04 14:51:16 --- Oh, and this looks more likely to be a crypt32 bug now, so I'm moving the component accordingly.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #18 from Anastasius Focht focht@gmx.net 2008-08-04 15:54:42 --- Created an attachment (id=15266) --> (http://bugs.winehq.org/attachment.cgi?id=15266) +crypt,+wintrust trace log
Hello,
--- quote --- Oh, how very odd. Would you mind attaching a +wintrust,+crypt log for me to dig through? Thanks again. --- quote ---
Sure. Though the snippet from my previous post already contains all the relevant info.
--- quote --- "It still doesn't work for me, even with the gdiplus override." --- quote ---
I still don't understand why you can't (re)produce the trace by yourself. Do you actually have the silverlight installer for testing or not?
Here is a direct Silverlight v1.0 download link which bypasses the platform check crap of M$ sl homesite:
http://silverlight.dlservice.microsoft.com/download/7/7/b/77bdd850-c370-4357...
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #19 from Juan Lang juan_lang@yahoo.com 2008-08-04 16:02:46 --- (In reply to comment #18)
Sure. Though the snippet from my previous post already contains all the relevant info.
You're right. I was hoping for a little more insight as to why it's calling CryptQueryObject. It seems I won't get any, so I have to investigate that some more.
I still don't understand why you can't (re)produce the trace by yourself. Do you actually have the silverlight installer for testing or not?
I have it. It never calls any wintrust functions for me, but bails out rather early. It appears it doesn't like gdiplus, even though I clearly have gdiplus installed and the override set.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #20 from Juan Lang juan_lang@yahoo.com 2008-08-04 16:47:53 --- Created an attachment (id=15271) --> (http://bugs.winehq.org/attachment.cgi?id=15271) Proposed patch
Does this help somewhat? I wouldn't be surprised if it just turned up some other problem, but I'm hoping it'll at least progress it a bit further.
http://bugs.winehq.org/show_bug.cgi?id=11759
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=11759
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #15271|0 |1 is obsolete| |
--- Comment #21 from Juan Lang juan_lang@yahoo.com 2008-08-05 00:09:45 --- (From update of attachment 15271) This patch had a bug in it, it was passing a potentially NULL pointer as the encoding type to the SIP's pfGet function pointer. pfGet assumes it's never NULL. I corrected that, see: http://www.winehq.org/pipermail/wine-patches/2008-August/059202.html
Now it crashes in CryptMsgGetAndVerifySigner. Incidentally, I didn't need the gdiplus overridde here. I can only test this on my laptop, my desktop continues not to run the installer, with or without the gdiplus override. I'm less often at my laptop so I may ask for help testing every now and again.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #22 from Juan Lang juan_lang@yahoo.com 2008-08-05 13:16:06 --- Created an attachment (id=15294) --> (http://bugs.winehq.org/attachment.cgi?id=15294) Console output
Patches for CryptMsgGetAndVerifySigner sent: http://www.winehq.org/pipermail/wine-patches/2008-August/059257.html http://www.winehq.org/pipermail/wine-patches/2008-August/059258.html http://www.winehq.org/pipermail/wine-patches/2008-August/059259.html
After these patches are applied, the installer still fails for me. The console output is attached.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #23 from James Hawkins truiken@gmail.com 2008-08-05 13:23:37 --- Can you do a find in the wineprefix to see where slup.exe is?
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #24 from Juan Lang juan_lang@yahoo.com 2008-08-05 13:43:01 --- (In reply to comment #23)
Can you do a find in the wineprefix to see where slup.exe is?
It's not present. The directory c:\temp is created by the installer, but there isn't a subdirectory c:\temp\PFiles.
Looking for the file requires stubbing out kernel32's DeleteFileA and RemoveDirectoryA, as the installer deletes the directory it extracts files to (in my case, c:\temp) on error. That is, if you don't stub these functions out, the source file is guaranteed not to exist by the time the error appears.
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #25 from Anastasius Focht focht@gmx.net 2008-08-05 16:34:41 --- Created an attachment (id=15304) --> (http://bugs.winehq.org/attachment.cgi?id=15304) +tid,+seh,+msi,+msidb trace
Hello,
attached is relevant msi trace. That file(s) in question resides in msi patch db (silverlight.msp) and is not temporarily extracted at the time, hence the copy fails.
There is also a bug in MsiConfigureProductExW() which sometimes leads to premature failures.
--- snip dlls/msi/msi.c --- UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel, INSTALLSTATE eInstallState, LPCWSTR szCommandLine) { MSIPACKAGE* package = NULL; MSIINSTALLCONTEXT context; UINT r; DWORD sz; WCHAR sourcepath[MAX_PATH]; WCHAR filename[MAX_PATH]; .. sz = sizeof(sourcepath); memset( sourcepath, 0, sz); MsiSourceListGetInfoW(szProduct, NULL, context, MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEW, sourcepath, &sz);
sz = sizeof(filename); memset( filename, 0, sz); MsiSourceListGetInfoW(szProduct, NULL, context, MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEW, filename, &sz);
lstrcatW(sourcepath, filename); r = MSI_OpenPackageW(sourcepath, &package); .. } --- snip dlls/msi/msi.c ---
If MsiSourceListGetInfoW() calls fail for some reason and don't fill out/return buffer (see fixme:msi:MsiSourceListGetInfoW Unhandled context 4), you might end up copying garbage because the buffer is allocated on stack and not explicitly initialized.
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
--- Comment #26 from Anastasius Focht focht@gmx.net 2008-08-05 16:41:05 --- Hello again,
*argh* the snippet for MsiSourceListGetInfoW() actually contained my modification - just blank the memset() out and you have the original (bug) state ;-)
Regards
http://bugs.winehq.org/show_bug.cgi?id=11759
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|crypt32 |msi Keywords|patch |
--- Comment #27 from Juan Lang juan_lang@yahoo.com 2008-08-18 10:54:40 --- The crypt32 fixes have been committed. This is now both a gdiplus bug and an msi one. Setting the component to msi because the workaround for gdiplus is easier, and patch to msi is probably smaller.
http://bugs.winehq.org/show_bug.cgi?id=11759
Mike Ellery mellery@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mellery@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=11759
James Hawkins truiken@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #28 from James Hawkins truiken@gmail.com 2008-10-16 12:07:19 --- Both Silverlight 1 and 2 install fine for me in git.
http://bugs.winehq.org/show_bug.cgi?id=11759
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #29 from Alexandre Julliard julliard@winehq.org 2008-10-24 11:12:54 --- Closing bugs fixed in 1.1.7.
http://bugs.winehq.org/show_bug.cgi?id=11759
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |6e63953b4c8c0f50a102d7ea484 | |7352a6aedc346 Hardware|Other |x86 OS|other |Linux
https://bugs.winehq.org/show_bug.cgi?id=11759
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.microsoft.com/si |https://web.archive.org/web |lverlight/resources/install |/20130515235302/http://silv |.aspx |erlight.dlservice.microsoft | |.com/download/7/7/b/77bdd85 | |0-c370-4357-8011-74aa508a2b | |35/Silverlight.exe Summary|Microsoft Silverlight |Microsoft Silverlight 1.0 |installer - unimplemented |fails to install |functions |