wbemprox: Avoid a crash in get_propval when the query returned no results.

This commit is contained in:
Hans Leidekker 2012-12-18 11:20:53 +01:00 committed by Alexandre Julliard
parent 0e6d3b8611
commit 035315c45c
1 changed files with 4 additions and 4 deletions

View File

@ -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;