From: Jacek Caban Subject: urlmon: Avoid ProtocolHandler being destroyed in Terminate call. Message-Id: <5374F1D3.4040204@codeweavers.com> Date: Thu, 15 May 2014 18:56:51 +0200 --- dlls/urlmon/bindprot.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/urlmon/bindprot.c b/dlls/urlmon/bindprot.c index 7f2bea1..1efb74c 100644 --- a/dlls/urlmon/bindprot.c +++ b/dlls/urlmon/bindprot.c @@ -698,6 +698,9 @@ static HRESULT WINAPI ProtocolHandler_Terminate(IInternetProtocol *iface, DWORD if(!This->reported_result) return E_FAIL; + /* This may get released in Terminate call. */ + IInternetProtocolEx_AddRef(&This->IInternetProtocolEx_iface); + IInternetProtocol_Terminate(This->protocol, 0); set_binding_sink(This, NULL, NULL); @@ -707,6 +710,7 @@ static HRESULT WINAPI ProtocolHandler_Terminate(IInternetProtocol *iface, DWORD This->bind_info = NULL; } + IInternetProtocolEx_Release(&This->IInternetProtocolEx_iface); return S_OK; }