[libvirt] [PATCH] esx: avoid null dereference on error

Laine Stump laine at laine.org
Wed May 4 05:08:31 UTC 2011


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?



More information about the libvir-list mailing list