Fix: error-query: uninitialized action_index value
[lttng-tools.git] / src / common / error-query.c
index d4395b467f265a8fda8f8e461692aeec78bb9ef2..8bee203977ddec1c27a6b399f53b78a4e6ceb479 100644 (file)
@@ -12,7 +12,7 @@
 #include <common/macros.h>
 #include <common/sessiond-comm/sessiond-comm.h>
 #include <lttng/action/action-internal.h>
-#include <lttng/action/group-internal.h>
+#include <lttng/action/list-internal.h>
 #include <lttng/error-query-internal.h>
 #include <lttng/error-query.h>
 #include <lttng/trigger/trigger-internal.h>
@@ -127,7 +127,7 @@ extern struct lttng_error_query *lttng_error_query_action_create(
                const struct lttng_action *action)
 {
        struct lttng_error_query_action *query = NULL;
-       typeof(query->action_index) action_index;
+       typeof(query->action_index) action_index = {};
        struct lttng_trigger *trigger_copy = NULL;
 
        if (!trigger || !action) {
@@ -145,24 +145,24 @@ extern struct lttng_error_query *lttng_error_query_action_create(
         * action list.
         *
         * Note that action comparisons are performed by pointer since multiple
-        * otherwise identical actions can be found in an action group (two
+        * otherwise identical actions can be found in an action list (two
         * notify actions, for example).
         */
        if (action != trigger->action &&
                        lttng_action_get_type(trigger->action) ==
                                        LTTNG_ACTION_TYPE_GROUP) {
-               unsigned int i, action_group_count;
+               unsigned int i, action_list_count;
                enum lttng_action_status action_status;
 
-               action_status = lttng_action_group_get_count(
-                               trigger->action, &action_group_count);
+               action_status = lttng_action_list_get_count(
+                               trigger->action, &action_list_count);
                if (action_status != LTTNG_ACTION_STATUS_OK) {
                        goto error;
                }
 
-               for (i = 0; i < action_group_count; i++) {
+               for (i = 0; i < action_list_count; i++) {
                        const struct lttng_action *candidate_action =
-                                       lttng_action_group_get_at_index(
+                                       lttng_action_list_get_at_index(
                                                        trigger->action, i);
 
                        assert(candidate_action);
@@ -686,7 +686,7 @@ struct lttng_action *lttng_error_query_action_borrow_action_target(
                        goto end;
                }
 
-               target_action = lttng_action_group_borrow_mutable_at_index(
+               target_action = lttng_action_list_borrow_mutable_at_index(
                                trigger_action,
                                LTTNG_OPTIONAL_GET(query_action->action_index));
        }
@@ -739,6 +739,7 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
 {
        ssize_t used_size = 0;
        struct lttng_error_query_comm *header;
+       struct lttng_trigger *trigger = NULL;
        struct lttng_payload_view header_view =
                        lttng_payload_view_from_view(view, 0, sizeof(*header));
 
@@ -754,7 +755,6 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
        switch ((enum lttng_error_query_target_type) header->target_type) {
        case LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER:
        {
-               struct lttng_trigger *trigger;
                ssize_t trigger_used_size;
                struct lttng_payload_view trigger_view =
                                lttng_payload_view_from_view(
@@ -775,7 +775,6 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
                used_size += trigger_used_size;
 
                *query = lttng_error_query_trigger_create(trigger);
-               lttng_trigger_put(trigger);
                if (!*query) {
                        used_size = -1;
                        goto end;
@@ -785,7 +784,6 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
        }
        case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION:
        {
-               struct lttng_trigger *trigger;
                const struct lttng_action *target_action;
                ssize_t trigger_used_size;
                struct lttng_error_query_action_comm *action_header;
@@ -834,14 +832,13 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
                                goto end;
                        }
 
-                       target_action = lttng_action_group_get_at_index(
+                       target_action = lttng_action_list_get_at_index(
                                        trigger->action,
                                        action_header->action_index.value);
                }
 
                *query = lttng_error_query_action_create(
                                trigger, target_action);
-               lttng_trigger_put(trigger);
                if (!*query) {
                        used_size = -1;
                        goto end;
@@ -855,6 +852,7 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view,
        }
 
 end:
+       lttng_trigger_put(trigger);
        return used_size;
 }
 
This page took 0.025385 seconds and 4 git commands to generate.