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-Tag: v2.13.5~16 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=09c640add9b7586b09dd837f7590203f4e7317c3 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.c b/src/common/event.c index 0d6a60fba..f336875ae 100644 --- a/src/common/event.c +++ b/src/common/event.c @@ -1489,6 +1489,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 *) @@ -1509,10 +1512,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; }