From 0aa56cabe4bfaa3effe338431795a7f1b24ccece Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 22 Dec 2015 00:51:36 +0300 Subject: [PATCH] dxdiagn: Improve error handling when converting to VT_BSTR (Coverity). Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- 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 2890c613459..5665d01d5b8 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;