Re: [PATCH 2/9] ftrace: Fix possible NULL dereferencing in__ftrace_hash_rec_update

From: Steven Rostedt
Date: Mon Nov 28 2011 - 11:24:07 EST


On Sun, 2011-11-27 at 19:04 +0100, Jiri Olsa wrote:
> We need to check the existence of the other_hash before
> we touch its count variable.
>
> This issue is hit only when non global ftrace_ops is used.
> The global ftrace_ops is initialized with empty hashes.
>
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index b1e8943..c6d0293 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -1372,7 +1372,8 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> if (filter_hash && in_hash && !in_other_hash)
> match = 1;
> else if (!filter_hash && in_hash &&
> - (in_other_hash || !other_hash->count))
> + (in_other_hash ||
> + !other_hash || !other_hash->count))

Thanks! I hit this bug in too many places. I need to make a helper
routine, which I think I will, that is:

hash_has_contents(hash)

that does the check for us.

-- Steve

> match = 1;
> }
> if (!match)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/