msxml3: Fix handling of NULL object site (Coverity).
This commit is contained in:
parent
21be19a1dc
commit
b2643d3841
|
@ -1444,34 +1444,37 @@ static HRESULT WINAPI httprequest_ObjectWithSite_GetSite( IObjectWithSite *iface
|
||||||
static HRESULT WINAPI httprequest_ObjectWithSite_SetSite( IObjectWithSite *iface, IUnknown *punk )
|
static HRESULT WINAPI httprequest_ObjectWithSite_SetSite( IObjectWithSite *iface, IUnknown *punk )
|
||||||
{
|
{
|
||||||
httprequest *This = impl_from_IObjectWithSite(iface);
|
httprequest *This = impl_from_IObjectWithSite(iface);
|
||||||
IServiceProvider *provider;
|
|
||||||
HRESULT hr;
|
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n", iface, punk);
|
TRACE("(%p)->(%p)\n", This, punk);
|
||||||
|
|
||||||
if (punk)
|
|
||||||
IUnknown_AddRef( punk );
|
|
||||||
|
|
||||||
if(This->site)
|
if(This->site)
|
||||||
IUnknown_Release( This->site );
|
IUnknown_Release( This->site );
|
||||||
|
|
||||||
|
SysFreeString(This->siteurl);
|
||||||
|
This->siteurl = NULL;
|
||||||
This->site = punk;
|
This->site = punk;
|
||||||
|
|
||||||
hr = IUnknown_QueryInterface(This->site, &IID_IServiceProvider, (void**)&provider);
|
if (punk)
|
||||||
if (hr == S_OK)
|
|
||||||
{
|
{
|
||||||
IHTMLDocument2 *doc;
|
IServiceProvider *provider;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (void**)&doc);
|
IUnknown_AddRef( punk );
|
||||||
|
|
||||||
|
hr = IUnknown_QueryInterface(This->site, &IID_IServiceProvider, (void**)&provider);
|
||||||
if (hr == S_OK)
|
if (hr == S_OK)
|
||||||
{
|
{
|
||||||
SysFreeString(This->siteurl);
|
IHTMLDocument2 *doc;
|
||||||
|
|
||||||
hr = IHTMLDocument2_get_URL(doc, &This->siteurl);
|
hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (void**)&doc);
|
||||||
IHTMLDocument2_Release(doc);
|
if (hr == S_OK)
|
||||||
TRACE("host url %s, 0x%08x\n", debugstr_w(This->siteurl), hr);
|
{
|
||||||
|
hr = IHTMLDocument2_get_URL(doc, &This->siteurl);
|
||||||
|
IHTMLDocument2_Release(doc);
|
||||||
|
TRACE("host url %s, 0x%08x\n", debugstr_w(This->siteurl), hr);
|
||||||
|
}
|
||||||
|
IServiceProvider_Release(provider);
|
||||||
}
|
}
|
||||||
IServiceProvider_Release(provider);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
|
@ -5213,6 +5213,9 @@ todo_wine {
|
||||||
EXPECT_REF(obj_site, 1);
|
EXPECT_REF(obj_site, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hr = IObjectWithSite_SetSite(obj_site, NULL);
|
||||||
|
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||||
|
|
||||||
IObjectWithSite_AddRef(obj_site);
|
IObjectWithSite_AddRef(obj_site);
|
||||||
todo_wine {
|
todo_wine {
|
||||||
EXPECT_REF(obj_site, 2);
|
EXPECT_REF(obj_site, 2);
|
||||||
|
|
Loading…
Reference in New Issue