Skip to content

Commit 361eb85

Browse files
Weigang Herostedt
authored andcommitted
scripts/tracepoint-update: Fix memory leak in add_string() on failure
When realloc() fails in add_string(), the function returns -1 but leaves *vals pointing to the previously allocated memory. This can cause memory leaks in callers like make_trace_array() that return on error without freeing the partially built array. Fix this by freeing *vals and setting it to NULL when realloc() fails. This makes the error handling self-contained in add_string() so callers don't need to handle cleanup on failure. This bug is found by my static analysis tool and my code review. Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Fixes: e30f8e6 ("tracing: Add a tracepoint verification check at build time") Link: https://patch.msgid.link/20260119114542.1714405-1-geoffreyhe2@gmail.com Signed-off-by: Weigang He <geoffreyhe2@gmail.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent c9703d1 commit 361eb85

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

scripts/tracepoint-update.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ static int add_string(const char *str, const char ***vals, int *count)
4949
array = realloc(array, sizeof(char *) * size);
5050
if (!array) {
5151
fprintf(stderr, "Failed memory allocation\n");
52+
free(*vals);
53+
*vals = NULL;
5254
return -1;
5355
}
5456
*vals = array;

0 commit comments

Comments
 (0)