Module: wine Branch: master Commit: 9c6fca1ff7c364bb8293b09b507d2e7330891454 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c6fca1ff7c364bb8293b09b50...
Author: Alistair Leslie-Hughes leslie_alistair@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,