Re: [PATCH] perf/core: Fix reversed NULL check in perf_event_groups_less()

From: Peter Zijlstra
Date: Fri Mar 13 2020 - 08:27:37 EST


On Thu, Mar 12, 2020 at 01:56:37PM +0300, Dan Carpenter wrote:
> This NULL check is reversed so it leads to a Smatch warning and
> presumably a NULL dereference.
>
> kernel/events/core.c:1598 perf_event_groups_less()
> error: we previously assumed 'right->cgrp->css.cgroup' could be null
> (see line 1590)
>
> Fixes: 95ed6c707f26 ("perf/cgroup: Order events in RB tree by cgroup id")
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> ---
> kernel/events/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 6a47c3e54fe9..607c04ec7cfa 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -1587,7 +1587,7 @@ perf_event_groups_less(struct perf_event *left, struct perf_event *right)
> */
> return true;
> }
> - if (!right->cgrp || right->cgrp->css.cgroup) {
> + if (!right->cgrp || !right->cgrp->css.cgroup) {
> /*
> * Right has no cgroup but left does, no cgroups come
> * first.

Thanks!