Signed-off-by: Sven Baars sven.wine@gmail.com --- dlls/wbemprox/query.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wbemprox/query.c b/dlls/wbemprox/query.c index 0f43412473..0f7eada9af 100644 --- a/dlls/wbemprox/query.c +++ b/dlls/wbemprox/query.c @@ -632,6 +632,7 @@ done: if (query) release_query( query ); free_path( path ); SysFreeString( antecedent ); + heap_free( str ); return hr; }
Signed-off-by: Sven Baars sven.wine@gmail.com --- dlls/wbemprox/tests/query.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index cdbbc02820..1c6ffcaf8d 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -1654,6 +1654,7 @@ static void test_Win32_PnPEntity( IWbemServices *services ) VariantClear( &val ); } } + IWbemClassObject_Release( obj ); }
SysFreeString( bstr );
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=57465
Your paranoid android.
=== wvistau64_zh_CN (32 bit report) ===
Report errors: wbemprox:query has unaccounted for skip messages The report seems to have been truncated
=== wvistau64_zh_CN (task log) ===
Task errors: An error occurred while waiting for the test to complete: network read timed out (wait2/connect:AgentVersion.h:0/9) The test VM has crashed, rebooted or lost connectivity (or the TestAgent server died) The previous 2 run(s) terminated abnormally
=== w7u (32 bit report) ===
wbemprox: query: Timeout
Signed-off-by: Hans Leidekker hans@codeweavers.com
Signed-off-by: Sven Baars sven.wine@gmail.com --- dlls/wbemprox/tests/query.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 1c6ffcaf8d..40eaefee4c 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -750,7 +750,7 @@ static void test_StdRegProv( IWbemServices *services ) {'S','o','f','t','w','a','r','e','\','S','t','d','R','e','g','P','r','o','v','T','e','s','t',0}; BSTR class = SysAllocString( stdregprovW ), method, name; IWbemClassObject *reg, *sig_in, *sig_out, *in, *out; - VARIANT defkey, subkey, retval, names, types, value, valuename; + VARIANT defkey, subkey, retval, valuename; CIMTYPE type; HRESULT hr; LONG res; @@ -854,7 +854,6 @@ static void test_StdRegProv( IWbemServices *services )
check_property( out, namesW, VT_BSTR|VT_ARRAY, CIM_STRING|CIM_FLAG_ARRAY );
- VariantClear( &names ); VariantClear( &subkey ); IWbemClassObject_Release( in ); IWbemClassObject_Release( out ); @@ -893,8 +892,6 @@ static void test_StdRegProv( IWbemServices *services ) check_property( out, namesW, VT_BSTR|VT_ARRAY, CIM_STRING|CIM_FLAG_ARRAY ); check_property( out, typesW, VT_I4|VT_ARRAY, CIM_SINT32|CIM_FLAG_ARRAY );
- VariantClear( &types ); - VariantClear( &names ); VariantClear( &subkey ); IWbemClassObject_Release( in ); IWbemClassObject_Release( out ); @@ -937,7 +934,6 @@ static void test_StdRegProv( IWbemServices *services )
check_property( out, valueW, VT_BSTR, CIM_STRING );
- VariantClear( &value ); VariantClear( &valuename ); VariantClear( &subkey ); IWbemClassObject_Release( in );
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=57467
Your paranoid android.
=== wvistau64_zh_CN (32 bit report) ===
Report errors: wbemprox:query has unaccounted for skip messages The report seems to have been truncated
=== wvistau64_zh_CN (task log) ===
Task errors: An error occurred while waiting for the test to complete: network read timed out (wait2/connect:AgentVersion.h:0/9) The test VM has crashed, rebooted or lost connectivity (or the TestAgent server died) The previous 2 run(s) terminated abnormally
=== wvistau64_fr (task log) ===
Task errors: The previous 1 run(s) terminated abnormally
=== wvistau64_he (task log) ===
Task errors: The task timed out
=== w7u (32 bit report) ===
wbemprox: query: Timeout
Signed-off-by: Hans Leidekker hans@codeweavers.com
Signed-off-by: Sven Baars sven.wine@gmail.com --- dlls/wbemprox/query.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/wbemprox/query.c b/dlls/wbemprox/query.c index 0f7eada9af..f46dcd922f 100644 --- a/dlls/wbemprox/query.c +++ b/dlls/wbemprox/query.c @@ -57,7 +57,11 @@ HRESULT create_view( enum view_type type, const WCHAR *path, const struct keywor struct table *table = grab_table( class ); HRESULT hr;
- if (table && (hr = append_table( view, table )) != S_OK) return hr; + if (table && (hr = append_table( view, table )) != S_OK) + { + heap_free( view ); + return hr; + } view->proplist = proplist; view->cond = cond; break;
Signed-off-by: Hans Leidekker hans@codeweavers.com
Signed-off-by: Sven Baars sven.wine@gmail.com --- dlls/wbemprox/services.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c index e1cd2466e4..5909c02e61 100644 --- a/dlls/wbemprox/services.c +++ b/dlls/wbemprox/services.c @@ -335,24 +335,42 @@ HRESULT parse_path( const WCHAR *str, struct path **ret ) DWORD server_len = ARRAY_SIZE(server);
p++; - if (*p != '\') return WBEM_E_INVALID_OBJECT_PATH; + if (*p != '\') + { + heap_free( path ); + return WBEM_E_INVALID_OBJECT_PATH; + } p++;
q = p; while (*p && *p != '\') p++; - if (!*p) return WBEM_E_INVALID_OBJECT_PATH; + if (!*p) + { + heap_free( path ); + return WBEM_E_INVALID_OBJECT_PATH; + }
len = p - q; if (!GetComputerNameW( server, &server_len ) || server_len != len || wcsnicmp( q, server, server_len )) + { + heap_free( path ); return WBEM_E_NOT_SUPPORTED; + }
q = ++p; while (*p && *p != ':') p++; - if (!*p) return WBEM_E_INVALID_OBJECT_PATH; + if (!*p) + { + heap_free( path ); + return WBEM_E_INVALID_OBJECT_PATH; + }
len = p - q; if (len != ARRAY_SIZE(cimv2W) - 1 || wcsnicmp( q, cimv2W, ARRAY_SIZE(cimv2W) - 1 )) + { + heap_free( path ); return WBEM_E_INVALID_NAMESPACE; + } p++; }
Signed-off-by: Hans Leidekker hans@codeweavers.com