On 05/16/2013 10:57 AM, John Ferlan wrote: > 1089 dev->dev.mem.maxsize = dev->dev.mem.size; > > (4) Event check_return: > Calling function "cu_get_u64_prop(CMPIInstance const *, char const *, > uint64_t *)" without checking return value (as is done elsewhere 9 > out of 10 times). > (14) Event unchecked_value: > No check of the return value of "cu_get_u64_prop(inst, "Limit", > &dev->dev.mem.maxsize)". > > 1090 cu_get_u64_prop(inst, "Limit", &dev->dev.mem.maxsize); > > Resolve by adding check and returning a message indicating what's missing > --- > src/Virt_VirtualSystemManagementService.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/Virt_VirtualSystemManagementService.c > b/src/Virt_VirtualSystemManagementService.c > index cbb646d..ebf3e4a 100644 > --- a/src/Virt_VirtualSystemManagementService.c > +++ b/src/Virt_VirtualSystemManagementService.c > @@ -1087,7 +1087,9 @@ static const char *mem_rasd_to_vdev(CMPIInstance *inst, > return "Missing `VirtualQuantity' field in Memory RASD"; > > dev->dev.mem.maxsize = dev->dev.mem.size; > - cu_get_u64_prop(inst, "Limit", &dev->dev.mem.maxsize); > + ret = cu_get_u64_prop(inst, "Limit", &dev->dev.mem.maxsize); > + if (ret != CMPI_RC_OK) > + return "Missing `Limit' field in Memory RASD"; > > if (cu_get_str_prop(inst, "AllocationUnits", &units) != CMPI_RC_OK) { > CU_DEBUG("Memory RASD has no units, assuming bytes"); >
An issue was found with the above code since Limit doesn't seem to be a required value, thus the code has been changed to the following: diff --git a/src/Virt_VirtualSystemManagementService.c b/src/Virt_VirtualSystemM index cbb646d..f1441dc 100644 --- a/src/Virt_VirtualSystemManagementService.c +++ b/src/Virt_VirtualSystemManagementService.c @@ -1086,8 +1086,9 @@ static const char *mem_rasd_to_vdev(CMPIInstance *inst, if (ret != CMPI_RC_OK) return "Missing `VirtualQuantity' field in Memory RASD"; - dev->dev.mem.maxsize = dev->dev.mem.size; - cu_get_u64_prop(inst, "Limit", &dev->dev.mem.maxsize); + ret = cu_get_u64_prop(inst, "Limit", &dev->dev.mem.maxsize); + if (ret != CMPI_RC_OK) + dev->dev.mem.maxsize = dev->dev.mem.size; if (cu_get_str_prop(inst, "AllocationUnits", &units) != CMPI_RC_OK) { CU_DEBUG("Memory RASD has no units, assuming bytes"); The difference being setting mem.maxsize to mem.size only if the call fails and not messaging if it does fail. _______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim