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

John Ferlan jferlan at redhat.com
Wed Dec 7 13:20:51 UTC 2016


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);
 
 #if !defined(LIBVIRT_NSS_GUEST)
-- 
2.7.4




More information about the libvir-list mailing list