All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] perf tools: Check for null when copying nsinfo.
@ 2018-08-10 13:36 Benno Evers
  2018-08-13 18:39 ` Arnaldo Carvalho de Melo
  2018-08-18 11:55 ` [tip:perf/urgent] " tip-bot for Benno Evers
  0 siblings, 2 replies; 3+ messages in thread
From: Benno Evers @ 2018-08-10 13:36 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Krister Johansen, Benno Evers, Peter Zijlstra, Ingo Molnar,
	Alexander Shishkin, Jiri Olsa, Namhyung Kim, linux-kernel

The argument to nsinfo__copy() was assumed to be valid, but some code paths
exist that will lead to NULL being passed.

In particular, running 'perf script -D' on a perf.data file containing an
PERF_RECORD_MMAP event associating the '[vdso]' dso with pid 0 earlier in
the event stream will lead to a segfault.

Since all calling code is already checking for a non-null return value,
just return NULL for this case as well.

Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Benno Evers <bevers@mesosphere.com>
---
Changes from v1:
  Added Signed-off-by line.

 tools/perf/util/namespaces.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/namespaces.c b/tools/perf/util/namespaces.c
index 5be021701f34..cf8bd123cf73 100644
--- a/tools/perf/util/namespaces.c
+++ b/tools/perf/util/namespaces.c
@@ -139,6 +139,9 @@ struct nsinfo *nsinfo__copy(struct nsinfo *nsi)
 {
 	struct nsinfo *nnsi;
 
+	if (nsi == NULL)
+		return NULL;
+
 	nnsi = calloc(1, sizeof(*nnsi));
 	if (nnsi != NULL) {
 		nnsi->pid = nsi->pid;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-08-18 11:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-10 13:36 [PATCH v2] perf tools: Check for null when copying nsinfo Benno Evers
2018-08-13 18:39 ` Arnaldo Carvalho de Melo
2018-08-18 11:55 ` [tip:perf/urgent] " tip-bot for Benno Evers

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.