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) Signed-off-by: Jerome Marchand <jmarchan@xxxxxxxxxx> --- src/parse-filter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/parse-filter.c b/src/parse-filter.c index e448ee2..f0c0ae1 100644 --- a/src/parse-filter.c +++ b/src/parse-filter.c @@ -1698,6 +1698,8 @@ static int test_num(struct tep_event *event, struct tep_filter_arg *arg, } } +char hex[64]; + static const char *get_field_str(struct tep_filter_arg *arg, struct tep_record *record) { struct tep_event *event; @@ -1705,7 +1707,6 @@ static const char *get_field_str(struct tep_filter_arg *arg, struct tep_record * unsigned long long addr; const char *val = NULL; 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.45.1