[Libvirt-cim] [PATCH] Cleanup _get_rasds() in Virt_RASD.c

Richard Maciel rmaciel at linux.vnet.ibm.com
Wed Sep 23 14:49:31 UTC 2009


+1


On 09/22/2009 03:15 PM, Jim Fehlig wrote:
> # HG changeset patch
> # User Jim Fehlig<jfehlig at novell.com>
> # Date 1253641563 21600
> # Node ID 81b6cd4ae355024303a8459817b4f15339d17111
> # Parent  7c5106b0b092147c521ef1f462b9a41a44a313f8
> Cleanup _get_rasds() in Virt_RASD.c
>
> I received a bug report about a memory leak in _get_rasds().  While
> fixing the leak, I took the opportunity to do some other tidying in
> this function.
>
>       Signed-off-by: Jim Fehlig<jfehlig at novell.com>
>
> diff -r 7c5106b0b092 -r 81b6cd4ae355 src/Virt_RASD.c
> --- a/src/Virt_RASD.c	Wed Sep 16 11:49:21 2009 -0700
> +++ b/src/Virt_RASD.c	Tue Sep 22 11:46:03 2009 -0600
> @@ -664,6 +664,7 @@
>           int count;
>           int i;
>           struct virt_device *devs = NULL;
> +        const char *host = NULL;
>
>           count = get_devices(dom,&devs, type);
>           if (count<= 0)
> @@ -672,8 +673,13 @@
>           /* Bit hackish, but for proc we need to cut list down to one. */
>           if (type == CIM_RES_TYPE_PROC) {
>                   struct virt_device *tmp_dev = NULL;
> -                tmp_dev = calloc(1, sizeof(*tmp_dev));
>                   tmp_dev = virt_device_dup(&devs[count - 1]);
> +                if (tmp_dev == NULL) {
> +                        cu_statusf(broker,&s,
> +                                   CMPI_RC_ERR_FAILED,
> +                                   "Failed to allocate memory for proc RASD");
> +                        goto out;
> +                }
>
>                   tmp_dev->id = strdup("proc");
>
> @@ -685,15 +691,16 @@
>                   count = 1;
>           }
>
> +        host = virDomainGetName(dom);
> +        if (host == NULL) {
> +                cu_statusf(broker,&s,
> +                           CMPI_RC_ERR_FAILED,
> +                           "Failed to get domain name");
> +                goto out;
> +        }
> +
>           for (i = 0; i<  count; i++) {
>                   CMPIInstance *dev = NULL;
> -                const char *host = NULL;
> -
> -                host = virDomainGetName(dom);
> -                if (host == NULL) {
> -                        cleanup_virt_device(&devs[i]);
> -                        continue;
> -                }
>
>                   dev = rasd_from_vdev(broker,
>                                        &devs[i],
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim


-- 
Richard Maciel, MSc
IBM Linux Technology Center
rmaciel at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list