Re: [RFC PATCH 01/22] perf: probe: avoid segfault if passed with ''.

Masami Hiramatsu
2015-05-05T14:09:37Z

On 2015/04/30 19:52, Wang Nan wrote:
> Since parse_perf_probe_point() deals with a user passed argument, we
> should not assume it to be a valid string.
>
> Without this patch, if pass '' to perf probe, a segfault raises:
>
> $ perf probe -a ''
> Segmentation fault
>
> This patch checks argument of parse_perf_probe_point() before
> string processing.
>
> After this patch:
>
> $ perf probe -a ''
>
> usage: perf probe [<options>] 'PROBEDEF' ['PROBEDEF' ...]
> or: perf probe [<options>] --add 'PROBEDEF' [--add 'PROBEDEF' ...]
> ...

This looks OK to me.

Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

Could you split this as an independent bugfix with my ack?

Thank you,

>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> ---
> tools/perf/util/probe-event.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index d8bb616..d05b77c 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -1084,6 +1084,8 @@ static int parse_perf_probe_point(char *arg, struct perf_probe_event *pev)
> *
> * TODO:Group name support
> */
> + if (!arg)
> + return -EINVAL;
>
> ptr = strpbrk(arg, ";=@+%");
> if (ptr && *ptr == '=') { /* Event name */
>

--
Masami HIRAMATSU
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt@hitachi.com