Robert Shearman wrote:
Jacek,
I have a patch that fixes the crash by validating the conditions on
entry to CoGetClassObject (attached). However, this test still fails:
err:ole:CoGetClassObject apartment not initialised
url.c:768:http test...
url.c:424: Test failed: unexpexted code 34
fixme:wininet:CommitUrlCacheEntryInternal entry already in cache -
don't know what to do!
url.c:667: Test failed: istr should be NULL
url.c:690: Test failed: expected OnProgress_MIMETYPEAVAILABLE
url.c:773:about test...
fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
url.c:779:emulated about test...
url.c:784:file test...
err:ole:CoGetClassObject apartment not initialised
url.c:662: Test failed: IMoniker_BindToStorage failed: 800401f0
url.c:791:emulated file test...
url: 253 tests executed, 0 marked as todo, 4 failures.
It looks to me as though CoGetClassObject should be called by urlmon
in certain circumstances (hence the CoInitialize calls in some of the
tests), but not in this case. The test fails with the same error when
run with native ole32 and rpcrt4.
CoGetClassObject shouldn't be called in a place that causes the crash at
all. It calls CoGetClassObject to get protocol handler, but it shouldn't
be needed for urlmon builtin handlers. I've sent patches that should fix
it (but without your second patch the other test will crash so they have
to be applied in one shot).
Thanks,
Jacek