lkml.org 
[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] perf expr: Fix missing check for return value of hashmap__new
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:
> > The hashmap__new() function may return ERR_PTR(-ENOMEM) when malloc
> > fails, add IS_ERR checking for ctx->ids.
> >
> > Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
>
> 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;
\
 
 \ /
  Last update: 2021-12-13 14:09    [W:0.113 / U:0.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site