Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/wbemprox/reg.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/dlls/wbemprox/reg.c b/dlls/wbemprox/reg.c index edcdb1902f1..e5a45b1b600 100644 --- a/dlls/wbemprox/reg.c +++ b/dlls/wbemprox/reg.c @@ -430,7 +430,11 @@ HRESULT reg_get_stringvalue( IWbemClassObject *obj, IWbemContext *context, IWbem hr = IWbemClassObject_Get( in, L"sSubKeyName", 0, &subkey, NULL, NULL ); if (hr != S_OK) return hr; hr = IWbemClassObject_Get( in, L"sValueName", 0, &name, NULL, NULL ); - if (hr != S_OK) return hr; + if (hr != S_OK) + { + VariantClear( &subkey ); + return hr; + }
hr = create_signature( L"StdRegProv", L"GetStringValue", PARAM_OUT, &sig ); if (hr != S_OK) @@ -508,9 +512,18 @@ HRESULT reg_set_stringvalue( IWbemClassObject *obj, IWbemContext *context, IWbem hr = IWbemClassObject_Get( in, L"sSubKeyName", 0, &subkey, NULL, NULL ); if (hr != S_OK) return hr; hr = IWbemClassObject_Get( in, L"sValueName", 0, &name, NULL, NULL ); - if (hr != S_OK) return hr; + if (hr != S_OK) + { + VariantClear( &subkey ); + return hr; + } hr = IWbemClassObject_Get( in, L"sValue", 0, &value, NULL, NULL ); - if (hr != S_OK) return hr; + if (hr != S_OK) + { + VariantClear( &name ); + VariantClear( &subkey ); + return hr; + }
hr = create_signature( L"StdRegProv", L"SetStringValue", PARAM_OUT, &sig ); if (hr != S_OK) @@ -582,9 +595,18 @@ HRESULT reg_set_dwordvalue( IWbemClassObject *obj, IWbemContext *context, IWbemC hr = IWbemClassObject_Get( in, L"sSubKeyName", 0, &subkey, NULL, NULL ); if (hr != S_OK) return hr; hr = IWbemClassObject_Get( in, L"sValueName", 0, &name, NULL, NULL ); - if (hr != S_OK) return hr; + if (hr != S_OK) + { + VariantClear( &subkey ); + return hr; + } hr = IWbemClassObject_Get( in, L"uValue", 0, &value, NULL, NULL ); - if (hr != S_OK) return hr; + if (hr != S_OK) + { + VariantClear( &name ); + VariantClear( &subkey ); + return hr; + }
hr = create_signature( L"StdRegProv", L"SetDWORDValue", PARAM_OUT, &sig ); if (hr != S_OK)