From: Jérémie Galarneau Date: Fri, 4 Mar 2022 20:29:12 +0000 (-0500) Subject: Fix: liblttng-ctl: erroneous flat size computation X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=fc33156e72d0b98c2a53db182d801e0ef9e2d037;p=deliverable%2Flttng-tools.git Fix: liblttng-ctl: erroneous flat size computation 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 --- 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; }