From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> Jerome Marchand sent a patch with the description of: The function get_field_str() can return a pointer to string on the stack. Replace it by a global variable. Fixes a RETURN_LOCAL error (CWE-562) But made hex a global variable. Having a generic name "hex" as a global variable in a library will cause a lot of issues. Just make it a static variable, and then it can be used outside the function. Link: https://lore.kernel.org/linux-trace-devel/20240607160542.46152-5-jmarchan@xxxxxxxxxx/ Fixes: dee43d8067350 ("tools lib traceevent: Let filtering numbers by string use function names") Reported-by: "Jerome Marchand" <jmarchan@xxxxxxxxxx> Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx> --- src/parse-filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parse-filter.c b/src/parse-filter.c index e448ee2b6799..75b84a0cc4ae 100644 --- a/src/parse-filter.c +++ b/src/parse-filter.c @@ -1704,8 +1704,8 @@ static const char *get_field_str(struct tep_filter_arg *arg, struct tep_record * struct tep_handle *tep; unsigned long long addr; const char *val = NULL; + static char hex[64]; unsigned int size; - char hex[64]; /* If the field is not a string convert it */ if (arg->str.field->flags & TEP_FIELD_IS_STRING) { -- 2.43.0