diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index d42dd345dd6..8434e56fae2 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -5498,6 +5498,9 @@ static HRESULT WINAPI ITypeInfo_fnGetFuncDesc( ITypeInfo2 *iface, UINT index, TRACE("(%p) index %d\n", This, index); + if (!ppFuncDesc) + return E_INVALIDARG; + if (This->TypeAttr.typekind == TKIND_DISPATCH) hr = ITypeInfoImpl_GetInternalDispatchFuncDesc((ITypeInfo *)iface, index, &internal_funcdesc, NULL, @@ -5729,6 +5732,9 @@ static HRESULT WINAPI ITypeInfo_fnGetImplTypeFlags( ITypeInfo2 *iface, TRACE("(%p) index %d\n", This, index); + if(!pImplTypeFlags) + return E_INVALIDARG; + if(This->TypeAttr.typekind == TKIND_DISPATCH && index == 0){ *pImplTypeFlags = 0; return S_OK; @@ -7027,6 +7033,9 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo( ITypeInfoImpl *This = impl_from_ITypeInfo2(iface); HRESULT result = E_FAIL; + if(!ppTInfo) + return E_INVALIDARG; + if ((This->hreftype != -1) && (This->hreftype == hRefType)) { *ppTInfo = (ITypeInfo *)&This->ITypeInfo2_iface; @@ -7424,6 +7433,9 @@ static HRESULT WINAPI ITypeInfo2_fnGetCustData( TRACE("%p %s %p\n", This, debugstr_guid(guid), pVarVal); + if(!guid || !pVarVal) + return E_INVALIDARG; + pCData = TLB_get_custdata_by_guid(&This->custdata_list, guid); VariantInit( pVarVal);