[Libvirt-cim] [PATCH] Fixing NullPointerException

Chip Vincent cvincent at linux.vnet.ibm.com
Thu Jan 13 19:27:10 UTC 2011


Good catch!!! +1

Pushed.

Sharad Mishra wrote:
> # HG changeset patch
> # User Sharad Mishra <snmishra at us.ibm.com>
> # Date 1293660976 28800
> # Node ID a4f6fba67e8e85aaec6969c39cfaa016b60779d3
> # Parent  35396e5b805193c024b6d4f065136d7b57a0b03d
> Fixing NullPointerException
>
> CMPIInstance 'inst' is used before it is set.
> With this patch sending a one line change to
> set previous instance correctly.
>
> Signed-off-by: Sharad Mishra <snmishra at us.ibm.com>
>
> diff -r 35396e5b8051 -r a4f6fba67e8e src/Virt_VirtualSystemManagementService.c
> --- a/src/Virt_VirtualSystemManagementService.c	Tue Dec 14 13:59:51 2010 -0800
> +++ b/src/Virt_VirtualSystemManagementService.c	Wed Dec 29 14:16:16 2010 -0800
> @@ -1378,16 +1378,6 @@
>                  goto out;
>          }
>
> -        if (cu_get_str_prop(inst, "autoStart", &autoStartFlag) != CMPI_RC_OK)
> -                autoStartFlag = strdup("disable");
> -        
> -        if (STREQ(autoStartFlag, "enable"))
> -                autoflag = 1;
> -        else
> -                autoflag = 0;  
> -        if((virDomainSetAutostart(dom, autoflag)) == -1)
> -                CU_DEBUG("Failed to set autostart flag.");
> -
>          name = virDomainGetName(dom);
>
>          *s = get_domain_by_name(_BROKER, ref, name, &inst);
> @@ -1396,6 +1386,20 @@
>                  cu_statusf(_BROKER, s,
>                             CMPI_RC_ERR_FAILED,
>                             "Failed to lookup resulting system");
> +                goto out;
> +        }
> +
> +        if (inst != NULL) {
> +                if (cu_get_str_prop(inst, "autoStart", 
> +                    &autoStartFlag) != CMPI_RC_OK)
> +                        autoStartFlag = strdup("disable");
> +
> +                if (STREQ(autoStartFlag, "enable"))
> +                        autoflag = 1;
> +                else
> +                        autoflag = 0;
> +                if((virDomainSetAutostart(dom, autoflag)) == -1)
> +                        CU_DEBUG("Failed to set autostart flag.");
>          }
>
>   out:
> @@ -2424,12 +2428,12 @@
>                          goto out;
>                  }
>
> +                prev_inst = orig_inst;
>                  s = cu_merge_instances(rasd, orig_inst);
>                  if (s.rc != CMPI_RC_OK) {
>                          CU_DEBUG("Failed to merge Instances");
>                          goto out;
>                  }
> -                prev_inst = orig_inst;
>                  rasd = orig_inst;
>          
>          } 
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>   


-- 
Chip Vincent
Open Virtualization, Linux Technology Center
IBM Systems & Technology Group
phone: 919-254-4482, T/L 444-4482
email: cvincent at us.ibm.com




More information about the Libvirt-cim mailing list