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


Reply via email to