Module: wine Branch: master Commit: 0aa56cabe4bfaa3effe338431795a7f1b24ccece URL: http://source.winehq.org/git/wine.git/?a=commit;h=0aa56cabe4bfaa3effe3384317...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Dec 22 00:51:36 2015 +0300
dxdiagn: Improve error handling when converting to VT_BSTR (Coverity).
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dxdiagn/provider.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/dxdiagn/provider.c b/dlls/dxdiagn/provider.c index 2890c61..5665d01 100644 --- a/dlls/dxdiagn/provider.c +++ b/dlls/dxdiagn/provider.c @@ -346,6 +346,7 @@ static inline HRESULT add_bool_property(IDxDiagContainerImpl_Container *node, co static inline HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, ULONGLONG data ) { IDxDiagContainerImpl_Property *prop; + HRESULT hr;
prop = allocate_property_information(propName); if (!prop) @@ -354,7 +355,12 @@ static inline HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *n V_VT(&prop->vProp) = VT_UI8; V_UI8(&prop->vProp) = data;
- VariantChangeType(&prop->vProp, &prop->vProp, 0, VT_BSTR); + hr = VariantChangeType(&prop->vProp, &prop->vProp, 0, VT_BSTR); + if (FAILED(hr)) + { + free_property_information(prop); + return hr; + }
list_add_tail(&node->properties, &prop->entry); ++node->nProperties;