lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50399556C9727B4D88A595C8584AAB37525EEA46@GSjpTKYDCembx32.service.hitachi.net>
Date:	Fri, 30 Oct 2015 10:24:07 +0000
From:	平松雅巳 / HIRAMATU,MASAMI 
	<masami.hiramatsu.pt@...achi.com>
To:	"'Wang Nan'" <wangnan0@...wei.com>,
	"acme@...nel.org" <acme@...nel.org>,
	"ast@...mgrid.com" <ast@...mgrid.com>,
	"brendan.d.gregg@...il.com" <brendan.d.gregg@...il.com>
CC:	"a.p.zijlstra@...llo.nl" <a.p.zijlstra@...llo.nl>,
	"daniel@...earbox.net" <daniel@...earbox.net>,
	"dsahern@...il.com" <dsahern@...il.com>,
	"hekuang@...wei.com" <hekuang@...wei.com>,
	"jolsa@...nel.org" <jolsa@...nel.org>,
	"lizefan@...wei.com" <lizefan@...wei.com>,
	"namhyung@...nel.org" <namhyung@...nel.org>,
	"paulus@...ba.org" <paulus@...ba.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"pi3orama@....com" <pi3orama@....com>,
	"xiakaixu@...wei.com" <xiakaixu@...wei.com>,
	Arnaldo Carvalho de Melo <acme@...hat.com>
Subject: RE: [PATCH 12/31] perf probe: Reset args and nargs for
 probe_trace_event when failure

From: Wang Nan [mailto:wangnan0@...wei.com]
>
>When failure occures in add_probe_trace_event(), args in
>probe_trace_event is incomplete. Since information in it may be used
>in futher, this patch frees the allocated memory and set it to NULL
>to avoid dangling pointer.

Sorry for replying late. Please see my comment.

>
>Signed-off-by: Wang Nan <wangnan0@...wei.com>
>Cc: Alexei Starovoitov <ast@...mgrid.com>
>Cc: Brendan Gregg <brendan.d.gregg@...il.com>
>Cc: Daniel Borkmann <daniel@...earbox.net>
>Cc: David Ahern <dsahern@...il.com>
>Cc: He Kuang <hekuang@...wei.com>
>Cc: Jiri Olsa <jolsa@...nel.org>
>Cc: Kaixu Xia <xiakaixu@...wei.com>
>Cc: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
>Cc: Namhyung Kim <namhyung@...nel.org>
>Cc: Paul Mackerras <paulus@...ba.org>
>Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>
>Cc: Zefan Li <lizefan@...wei.com>
>Cc: pi3orama@....com
>Cc: Arnaldo Carvalho de Melo <acme@...hat.com>
>Link: http://lkml.kernel.org/n/ebpf-6yw9eg0ej3l4jnqhinngkw86@git.kernel.org
>---
> tools/perf/util/probe-finder.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
>diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
>index bd8f03d..b1581d7 100644
>--- a/tools/perf/util/probe-finder.c
>+++ b/tools/perf/util/probe-finder.c
>@@ -1235,6 +1235,10 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
>
> end:
> 	free(args);

Actually, this args is filled with constant strings allocated in libdw, so it doesn't
free args[*].vars.

>+	if (ret) {
>+		tev->nargs = 0;
>+		zfree(&tev->args);

However, all the fields in tev->args[*] are allocated in find_variables. If you'd like
to clear it, you must free the fields too.
So, you should call clear_probe_trace_event(struct probe_trace_event *tev) defined
in util/probe-event.c.

Thank you,

>+	}
> 	return ret;
> }
>
>--
>1.8.3.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ