wbemprox: Avoid a crash in get_propval when the query returned no results.
This commit is contained in:
parent
0e6d3b8611
commit
035315c45c
|
@ -644,22 +644,22 @@ HRESULT get_propval( const struct view *view, UINT index, const WCHAR *name, VAR
|
||||||
CIMTYPE *type, LONG *flavor )
|
CIMTYPE *type, LONG *flavor )
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
UINT column, row = view->result[index];
|
UINT column, row;
|
||||||
VARTYPE vartype;
|
VARTYPE vartype;
|
||||||
void *val_ptr = NULL;
|
void *val_ptr = NULL;
|
||||||
LONGLONG val;
|
LONGLONG val;
|
||||||
|
|
||||||
if (is_system_prop( name )) return get_system_propval( view, index, name, ret, type, flavor );
|
if (is_system_prop( name )) return get_system_propval( view, index, name, ret, type, flavor );
|
||||||
if (!is_selected_prop( view, name )) return WBEM_E_NOT_FOUND;
|
if (!view->result || !is_selected_prop( view, name )) return WBEM_E_NOT_FOUND;
|
||||||
|
|
||||||
hr = get_column_index( view->table, name, &column );
|
hr = get_column_index( view->table, name, &column );
|
||||||
if (hr != S_OK || is_method( view->table, column )) return WBEM_E_NOT_FOUND;
|
if (hr != S_OK || is_method( view->table, column )) return WBEM_E_NOT_FOUND;
|
||||||
|
|
||||||
vartype = view->table->columns[column].vartype;
|
row = view->result[index];
|
||||||
|
|
||||||
hr = get_value( view->table, row, column, &val );
|
hr = get_value( view->table, row, column, &val );
|
||||||
if (hr != S_OK) return hr;
|
if (hr != S_OK) return hr;
|
||||||
|
|
||||||
|
vartype = view->table->columns[column].vartype;
|
||||||
if (view->table->columns[column].type & CIM_FLAG_ARRAY)
|
if (view->table->columns[column].type & CIM_FLAG_ARRAY)
|
||||||
{
|
{
|
||||||
CIMTYPE basetype = view->table->columns[column].type & CIM_TYPE_MASK;
|
CIMTYPE basetype = view->table->columns[column].type & CIM_TYPE_MASK;
|
||||||
|
|
Loading…
Reference in New Issue