[Libvirt-cim] [PATCH] VSMS: fv_vssd_to_domain() resolve Coverity error
Boris Fiuczynski
fiuczy at linux.vnet.ibm.com
Wed Jan 22 09:26:00 UTC 2014
On 11/13/2013 12:29 AM, John Ferlan wrote:
> Coverity discovered that the free(domain->os_info.fv.arch) and then
> usage later on during get_default_machine() and get_default_emulator()
> calls could result in using free()'d memory.
>
> If the 'cu_get_str_prop() failed or capsinfo == NULL, then the fv.arch
> wouldn't necessarily be strdup()'d.
>
> Passing a NULL os_info.fv_arch into the get*() API's is fine since
> they'll call findDomainInfo() which can handle a NULL arch value.
>
> Also added an initialization of val just to be safe. I don't think it's
> necessary though.
>
> ---
> NOTE:
>
> I found this during a Coverity run applying the endianness patches. For
> some reason Coverity "woke up" and saw this even though it hasn't found
> this issue in a couple months of runs since the changes to this module
> were made. See commit id '117dabb9'.
>
>
> src/Virt_VirtualSystemManagementService.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/Virt_VirtualSystemManagementService.c b/src/Virt_VirtualSystemManagementService.c
> index d51f230..9f8b5b9 100644
> --- a/src/Virt_VirtualSystemManagementService.c
> +++ b/src/Virt_VirtualSystemManagementService.c
> @@ -464,7 +464,7 @@ static int fv_vssd_to_domain(CMPIInstance *inst,
> {
> int ret = 1;
> int retr;
> - const char *val;
> + const char *val = NULL;
> const char *domtype = NULL;
> const char *ostype = "hvm";
> struct capabilities *capsinfo = NULL;
> @@ -494,6 +494,7 @@ static int fv_vssd_to_domain(CMPIInstance *inst,
> }
>
> free(domain->os_info.fv.arch);
> + domain->os_info.fv.arch = NULL;
> retr = cu_get_str_prop(inst, "Arch", &val);
> if (retr != CMPI_RC_OK) {
> if (capsinfo != NULL) { /* set default */
>
ACK
--
Mit freundlichen Grüßen/Kind regards
Boris Fiuczynski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the Libvirt-cim
mailing list