Re: [PATCH] perf stat: Fix NULL vs IS_ERR() checking in check_per_pkg

From: German Gomez
Date: Sun Dec 12 2021 - 09:55:36 EST


Hi Miaoqian,

On 12/12/2021 04:23, Miaoqian Lin wrote:
> The hashmap__new() function does not return NULL on errors. It returns
> ERR_PTR(-ENOMEM). Using IS_ERR() to check the return value
> to fix this.
>
> Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx>
> ---
> tools/perf/util/stat.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
> index 09ea334586f2..a77052680087 100644
> --- a/tools/perf/util/stat.c
> +++ b/tools/perf/util/stat.c
> @@ -311,8 +311,8 @@ static int check_per_pkg(struct evsel *counter,
>
> if (!mask) {
> mask = hashmap__new(pkg_id_hash, pkg_id_equal, NULL);
> - if (!mask)
> - return -ENOMEM;
> + if (IS_ERR(mask))
> + return PTR_ERR(mask);

I see that callers to "ids__new" are also missing these checks. Did you
consider patching those also?

Thanks,
German

>
> counter->per_pkg_mask = mask;
> }