X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fevent.c;h=0d6a60fbaab83fd237b4ebfd354f367191e0f877;hb=5a1367e480020c1c68e5acb21a0fd89a5b39395f;hp=4ea9ecf1e6b2a88ab075f6b6b45c05383c42a034;hpb=997edb99904a51565b70fe77e56e9bba06136ac1;p=lttng-tools.git diff --git a/src/common/event.c b/src/common/event.c index 4ea9ecf1e..0d6a60fba 100644 --- a/src/common/event.c +++ b/src/common/event.c @@ -201,6 +201,7 @@ static ssize_t lttng_event_probe_attr_create_from_payload( local_attr = NULL; ret = offset; end: + free(local_attr); return ret; } @@ -262,6 +263,7 @@ static ssize_t lttng_event_function_attr_create_from_payload( local_attr = NULL; ret = offset; end: + free(local_attr); return ret; } @@ -620,7 +622,7 @@ deserialize_event_type_payload: } if (ret != event_comm->userspace_probe_location_len) { - WARN("Userspace probe location from the received buffer is not the advertised length: header length = %" PRIu32 ", payload length = %lu", event_comm->userspace_probe_location_len, ret); + WARN("Userspace probe location from the received buffer is not the advertised length: header length = %" PRIu32 ", payload length = %zd", event_comm->userspace_probe_location_len, ret); ret = -1; goto end; } @@ -996,7 +998,8 @@ static ssize_t lttng_event_context_perf_counter_populate_from_payload( const struct lttng_payload_view *view, struct lttng_event_context *event_ctx) { - ssize_t ret, offset = 0; + int ret; + ssize_t consumed, offset = 0; const struct lttng_event_context_perf_counter_comm *comm; size_t name_len; const struct lttng_buffer_view comm_view = lttng_buffer_view_from_view( @@ -1008,7 +1011,7 @@ static ssize_t lttng_event_context_perf_counter_populate_from_payload( event_ctx->ctx == LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER); if (!lttng_buffer_view_is_valid(&comm_view)) { - ret = -1; + consumed = -1; goto end; } @@ -1025,7 +1028,7 @@ static ssize_t lttng_event_context_perf_counter_populate_from_payload( name_len); if (!lttng_buffer_view_is_valid(&provider_name_view)) { - ret = -1; + consumed = -1; goto end; } @@ -1033,21 +1036,25 @@ static ssize_t lttng_event_context_perf_counter_populate_from_payload( if (!lttng_buffer_view_contains_string( &provider_name_view, name, name_len)) { - ret = -1; + consumed = -1; goto end; } - lttng_strncpy(event_ctx->u.perf_counter.name, name, name_len); + ret = lttng_strncpy(event_ctx->u.perf_counter.name, name, name_len); + if (ret) { + consumed = -1; + goto end; + } offset += name_len; } event_ctx->u.perf_counter.config = comm->config; event_ctx->u.perf_counter.type = comm->type; - ret = offset; + consumed = offset; end: - return ret; + return consumed; } ssize_t lttng_event_context_create_from_payload( @@ -1146,7 +1153,8 @@ static int lttng_event_context_app_serialize( } /* Include the null terminator. */ - comm.provider_name_len = provider_len + 1; + provider_len += 1; + comm.provider_name_len = provider_len; ctx_len = strlen(ctx_name); if (ctx_len == 0) { @@ -1155,7 +1163,8 @@ static int lttng_event_context_app_serialize( } /* Include the null terminator. */ - comm.ctx_name_len = ctx_len + 1; + ctx_len += 1; + comm.ctx_name_len = ctx_len; /* Header */ ret = lttng_dynamic_buffer_append(&payload->buffer, &comm,