Alistair Leslie-Hughes : urlmon: The callback parameter can be null, check pointer before using.
Alexandre Julliard
julliard at winehq.org
Wed Nov 28 08:01:47 CST 2007
Module: wine
Branch: master
Commit: 9c6fca1ff7c364bb8293b09b507d2e7330891454
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c6fca1ff7c364bb8293b09b507d2e7330891454
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed Nov 28 22:20:14 2007 +1100
urlmon: The callback parameter can be null, check pointer before using.
---
dlls/urlmon/umstream.c | 48 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 40 insertions(+), 8 deletions(-)
diff --git a/dlls/urlmon/umstream.c b/dlls/urlmon/umstream.c
index ac5c94e..eeb1570 100644
--- a/dlls/urlmon/umstream.c
+++ b/dlls/urlmon/umstream.c
@@ -410,54 +410,86 @@ static HRESULT WINAPI ProxyBindStatusCallback_OnStartBinding(IBindStatusCallback
IBinding *pib)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnStartBinding(This->pBSC, dwReserved, pib);
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnStartBinding(This->pBSC, dwReserved, pib);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_GetPriority(This->pBSC, pnPriority);
+
+ if(This->pBSC)
+ return IBindStatusCallback_GetPriority(This->pBSC, pnPriority);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnLowResource(This->pBSC, reserved);
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnLowResource(This->pBSC, reserved);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress,
ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnProgress(This->pBSC, ulProgress,
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnProgress(This->pBSC, ulProgress,
ulProgressMax, ulStatusCode,
szStatusText);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnStopBinding(This->pBSC, hresult, szError);
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnStopBinding(This->pBSC, hresult, szError);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
+
+ if(This->pBSC)
+ return IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
+
+ return E_INVALIDARG;
}
static HRESULT WINAPI ProxyBindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF,
DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnDataAvailable(This->pBSC, grfBSCF, dwSize,
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnDataAvailable(This->pBSC, grfBSCF, dwSize,
pformatetc, pstgmed);
+
+ return S_OK;
}
static HRESULT WINAPI ProxyBindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID riid, IUnknown *punk)
{
ProxyBindStatusCallback *This = (ProxyBindStatusCallback *)iface;
- return IBindStatusCallback_OnObjectAvailable(This->pBSC, riid, punk);
+
+ if(This->pBSC)
+ return IBindStatusCallback_OnObjectAvailable(This->pBSC, riid, punk);
+
+ return S_OK;
}
static HRESULT WINAPI BlockingBindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF,
More information about the wine-cvs
mailing list