From fc33156e72d0b98c2a53db182d801e0ef9e2d037 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Fri, 4 Mar 2022 15:29:12 -0500 Subject: [PATCH] Fix: liblttng-ctl: erroneous flat size computation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit compute_flattened_size() erroneously computes (over-estimates) the size of the allocation required to hold the flat array of struct lttng_event returned to the user by lttng_list_{events, syscalls, tracepoints}. Signed-off-by: Jérémie Galarneau Change-Id: I0a80ef0fa66428b7df34303804a024e80b635c69 --- src/common/event.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/common/event.cpp b/src/common/event.cpp index 8e1b99ff9..dda5eb7ba 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -1488,6 +1488,9 @@ static enum lttng_error_code compute_flattened_size( /* The basic struct lttng_event */ storage_req = event_count * sizeof(struct lttng_event); + /* The struct·lttng_event_extended */ + storage_req += event_count * sizeof(struct lttng_event_extended); + for (i = 0; i < event_count; i++) { int probe_storage_req = 0; const struct event_list_element *element = (const struct event_list_element *) @@ -1508,10 +1511,6 @@ static enum lttng_error_code compute_flattened_size( probe_storage_req = ret; } - /* The struct·lttng_event_extended */ - storage_req += event_count * - sizeof(struct lttng_event_extended); - if (element->filter_expression) { storage_req += strlen(element->filter_expression) + 1; } -- 2.34.1