
On 05/03/2011 03:10 PM, Eric Blake wrote:
Detected by clang.
* src/esx/esx_driver.c (esxDomainGetInfo): Fail early on error. --- src/esx/esx_driver.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 1f8f90b..e929208 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -2372,8 +2372,9 @@ esxDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
if (perfEntityMetric == NULL) { VIR_ERROR(_("QueryPerf returned object with unexpected type '%s'"), esxVI_Type_ToString(perfEntityMetricBase->_type)); + goto cleanup; }
perfMetricIntSeries = esxVI_PerfMetricIntSeries_DynamicCast(perfEntityMetric->value);
I would just say ACK, since this obviously eliminates a null dereference, but I notice that the following check for perfMetricIntSeries == NULL also calls VIR_ERROR and then doesn't goto cleanup, so I'm wondering if maybe the intent is that if either of these is NULL, result should still get set to 0. Mathias?