SoW-2020-0003: Trace Hit Counters
[lttng-tools.git] / src / common / actions / group.c
index 1a434616f3d08fb1845f6d3c95faadeef029c59f..f7bbfd5a9155aac87fd93fb6b211466b7ea0435b 100644 (file)
@@ -16,7 +16,7 @@
 #include <lttng/action/group.h>
 
 #define IS_GROUP_ACTION(action) \
-       (lttng_action_get_type_const(action) == LTTNG_ACTION_TYPE_GROUP)
+       (lttng_action_get_type(action) == LTTNG_ACTION_TYPE_GROUP)
 
 struct lttng_action_group {
        struct lttng_action parent;
@@ -217,6 +217,11 @@ ssize_t lttng_action_group_create_from_payload(
                                lttng_payload_view_from_view(view, consumed_len,
                                                view->buffer.size - consumed_len);
 
+               if (!lttng_payload_view_is_valid(&child_view)) {
+                       consumed_len = -1;
+                       goto end;
+               }
+
                consumed_len_child = lttng_action_create_from_payload(
                                &child_view, &child_action);
                if (consumed_len_child < 0) {
@@ -278,7 +283,7 @@ enum lttng_action_status lttng_action_group_add_action(
        enum lttng_action_status status;
        int ret;
 
-       if (!group || !IS_GROUP_ACTION(action) || !action) {
+       if (!group || !IS_GROUP_ACTION(group) || !action) {
                status = LTTNG_ACTION_STATUS_INVALID;
                goto end;
        }
@@ -348,3 +353,11 @@ const struct lttng_action *lttng_action_group_get_at_index(
 end:
        return action;
 }
+
+struct lttng_action *lttng_action_group_get_mutable_at_index(
+               struct lttng_action *group,
+               unsigned int index)
+{
+       return (struct lttng_action *) lttng_action_group_get_at_index(
+                       (const struct lttng_action *) group, index);
+}
This page took 0.026631 seconds and 5 git commands to generate.