[libvirt] [PATCH 2/2] nss: Need to check error condition on virJSONValueArraySize

Michal Privoznik mprivozn at redhat.com
Thu Dec 8 16:03:35 UTC 2016


On 07.12.2016 14:20, John Ferlan wrote:
> If the 'nleases < 0' on return, then the subsequent call to
> findLeaseInJSON will not produce the expected results (passed
> in as a size_t, but nleases is a ssize_t).  So check if the
> returned value < 0 and if so, goto cleanup.
> 
> Found by Coverity as a NEGATIVE_RETURNS event
> 
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
>  tools/nss/libvirt_nss.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
> index 418c11f..b69e62c 100644
> --- a/tools/nss/libvirt_nss.c
> +++ b/tools/nss/libvirt_nss.c
> @@ -309,7 +309,8 @@ findLease(const char *name,
>      }
>      VIR_DIR_CLOSE(dir);
>  
> -    nleases = virJSONValueArraySize(leases_array);
> +    if ((nleases = virJSONValueArraySize(leases_array)) < 0)
> +        goto cleanup;
>      DEBUG("Read %zd leases", nleases);

Well, this one could happen iff @leases_array wouldn't be a JSON array.
Thus I'm okay with skipping DEBUG() in that case.

Michal




More information about the libvir-list mailing list