[Libvirt-cim] [PATCH] This fixes the seg fault seen with older version of sfcb

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Wed Oct 14 22:12:20 UTC 2009


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1255558169 25200
# Node ID 1dbcf6c22d5edf8864176e15edd8a4a91e33e726
# Parent  906a78ecf9f3e4972133c6792c1ff543cc57b493
This fixes the seg fault seen with older version of sfcb.

This has been tested with sfcb 1.3.2

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 906a78ecf9f3 -r 1dbcf6c22d5e src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c	Mon Oct 05 06:02:39 2009 -0700
+++ b/src/Virt_VirtualSystemManagementService.c	Wed Oct 14 15:09:29 2009 -0700
@@ -1435,24 +1435,25 @@
         CU_DEBUG("raise_rasd_indication");
 
         type = get_typed_class(CLASSNAME(ref), base_type);
-        ind = get_typed_instance(_BROKER, 
-                                 CLASSNAME(ref), 
-                                 base_type, 
-                                 NAMESPACE(ref));
-        if (ind == NULL)  {
-                CU_DEBUG("Failed to get indication instance");
-                s.rc = CMPI_RC_ERR_FAILED;
-                goto out;
-        }
-        
-        /* PreviousInstance is set only for modify case. */
-        if (prev_inst != NULL)
-                CMSetProperty(ind, 
-                              "PreviousInstance", 
-                              (CMPIValue *)&prev_inst, 
-                              CMPI_instance);
 
         for (i = 0; i < list->cur; i++) {
+                ind = get_typed_instance(_BROKER, 
+                                         CLASSNAME(ref), 
+                                         base_type, 
+                                         NAMESPACE(ref));
+                if (ind == NULL)  {
+                        CU_DEBUG("Failed to get indication instance");
+                        s.rc = CMPI_RC_ERR_FAILED;
+                        goto out;
+                }
+        
+                /* PreviousInstance is set only for modify case. */
+                if (prev_inst != NULL)
+                        CMSetProperty(ind, 
+                                      "PreviousInstance", 
+                                      (CMPIValue *)&prev_inst, 
+                                      CMPI_instance);
+
                 instc = list->list[i];
                 op = CMGetObjectPath(instc, NULL);
                 CMPIString *str = CMGetClassName(op, NULL);




More information about the Libvirt-cim mailing list