Fix: lib: add NULL check for destroy_listeners in destroy_component_class
[babeltrace.git] / src / lib / graph / component-class.c
index c3a47291ca0ec86d739e7169d0654015bc36a9fc..538cd77be1daff6a254ee80bffd03cf3ac087c6d 100644 (file)
@@ -36,15 +36,17 @@ void destroy_component_class(struct bt_object *obj)
        BT_LIB_LOGI("Destroying component class: %!+C", class);
 
        /* Call destroy listeners in reverse registration order */
-       for (i = class->destroy_listeners->len - 1; i >= 0; i--) {
-               struct bt_component_class_destroy_listener *listener =
-                       &g_array_index(class->destroy_listeners,
-                               struct bt_component_class_destroy_listener,
-                               i);
-
-               BT_LOGD("Calling destroy listener: func-addr=%p, data-addr=%p",
-                       listener->func, listener->data);
-               listener->func(class, listener->data);
+       if (class->destroy_listeners) {
+               for (i = class->destroy_listeners->len - 1; i >= 0; i--) {
+                       struct bt_component_class_destroy_listener *listener =
+                               &g_array_index(class->destroy_listeners,
+                                       struct bt_component_class_destroy_listener,
+                                       i);
+
+                       BT_LOGD("Calling destroy listener: func-addr=%p, data-addr=%p",
+                               listener->func, listener->data);
+                       listener->func(class, listener->data);
+               }
        }
 
        if (class->name) {
This page took 0.023659 seconds and 4 git commands to generate.