Thread (3 messages) 3 messages, 2 authors, 2021-12-13

Re: [PATCH] perf expr: Fix missing check for return value of hashmap__new

From: Arnaldo Carvalho de Melo <acme@kernel.org>
Date: 2021-12-13 13:08:56
Also in: lkml
Subsystem: performance events subsystem, the rest · Maintainers: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim, Linus Torvalds

Em Mon, Dec 13, 2021 at 10:06:02AM -0300, Arnaldo Carvalho de Melo escreveu:
Em Sun, Dec 12, 2021 at 06:25:02AM +0000, Miaoqian Lin escreveu:
quoted
The hashmap__new() function may return ERR_PTR(-ENOMEM) when malloc
fails, add IS_ERR checking for ctx->ids.

Signed-off-by: Miaoqian Lin <redacted>
Thanks, applied.
I take that back, kfree()? Are you compile testing this?

  CC      /tmp/build/perf/util/expr.o
util/expr.c: In function ‘expr__ctx_new’:
util/expr.c:302:13: error: implicit declaration of function ‘IS_ERR’ [-Werror=implicit-function-declaration]
  302 |         if (IS_ERR(ctx->ids)) {
      |             ^~~~~~
util/expr.c:303:17: error: implicit declaration of function ‘kfree’; did you mean ‘free’? [-Werror=implicit-function-declaration]
  303 |                 kfree(ctx);
      |                 ^~~~~
      |                 free
cc1: all warnings being treated as errors

I had to fix it applying this on top, please compile test your patches.

- Arnaldo
diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c
index c94c9ea30d1abd6a..254601060b392c42 100644
--- a/tools/perf/util/expr.c
+++ b/tools/perf/util/expr.c
@@ -12,6 +12,7 @@
 #include "expr-bison.h"
 #include "expr-flex.h"
 #include "smt.h"
+#include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/zalloc.h>
 #include <ctype.h>
@@ -300,7 +301,7 @@ struct expr_parse_ctx *expr__ctx_new(void)
 
 	ctx->ids = hashmap__new(key_hash, key_equal, NULL);
 	if (IS_ERR(ctx->ids)) {
-		kfree(ctx);
+		free(ctx);
 		return NULL;
 	}
 	ctx->runtime = 0;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help