The buffer in which the updated filter is written in update_pid_filters() is missing one byte to store the null character. It fixes the following error: $ trace-cmd start -e irq:* -e sched:* -P 1 *** buffer overflow detected ***: terminated Aborted (core dumped) Signed-off-by: Jerome Marchand <jmarchan@xxxxxxxxxx> --- tracecmd/trace-record.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c index a008cdfd..8726f9f4 100644 --- a/tracecmd/trace-record.c +++ b/tracecmd/trace-record.c @@ -2851,7 +2851,7 @@ static void update_pid_filters(struct buffer_instance *instance) if (fd < 0) die("Failed to access set_event_pid"); - len = instance->len_filter_pids + instance->nr_filter_pids; + len = instance->len_filter_pids + instance->nr_filter_pids + 1; filter = malloc(len); if (!filter) die("Failed to allocate pid filter"); -- 2.47.0