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?