LKML Archive on lore.kernel.org
 help / Atom feed
* [PATCH] perf tools: Check for null when copying nsinfo.
@ 2018-08-09 21:53 Benno Evers
  2018-08-10  4:55 ` Namhyung Kim
  0 siblings, 1 reply; 4+ messages in thread
From: Benno Evers @ 2018-08-09 21:53 UTC (permalink / raw)
  To: Krister Johansen
  Cc: Benno Evers, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, 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.
---
 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	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Check for null when copying nsinfo.
  2018-08-09 21:53 [PATCH] perf tools: Check for null when copying nsinfo Benno Evers
@ 2018-08-10  4:55 ` Namhyung Kim
  2018-08-10 13:18   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 4+ messages in thread
From: Namhyung Kim @ 2018-08-10  4:55 UTC (permalink / raw)
  To: Benno Evers
  Cc: Krister Johansen, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Alexander Shishkin, Jiri Olsa,
	linux-kernel, kernel-team

Hello,

On Thu, Aug 09, 2018 at 11:53:48PM +0200, Benno Evers wrote:
> 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>

It seems you missed the Signed-off-by though.

Thanks,
Namhyung


> ---
>  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	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Check for null when copying nsinfo.
  2018-08-10  4:55 ` Namhyung Kim
@ 2018-08-10 13:18   ` Arnaldo Carvalho de Melo
  2018-08-10 13:38     ` Benno Evers
  0 siblings, 1 reply; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-08-10 13:18 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Benno Evers, Krister Johansen, Peter Zijlstra, Ingo Molnar,
	Alexander Shishkin, Jiri Olsa, linux-kernel, kernel-team

Em Fri, Aug 10, 2018 at 01:55:37PM +0900, Namhyung Kim escreveu:
> Hello,
> 
> On Thu, Aug 09, 2018 at 11:53:48PM +0200, Benno Evers wrote:
> > 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>
> 
> It seems you missed the Signed-off-by though.

Yeah, please collect Namhyung's Acked-by and provide yours, i.e. your
patch should end with the following lines:


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

My git-am scripts will collect the Cc from the e-mail message and add
the Link:  with the Message-id.

Thanks,

- Arnaldo
 
> Thanks,
> Namhyung
> 
> 
> > ---
> >  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	[flat|nested] 4+ messages in thread

* Re: [PATCH] perf tools: Check for null when copying nsinfo.
  2018-08-10 13:18   ` Arnaldo Carvalho de Melo
@ 2018-08-10 13:38     ` Benno Evers
  0 siblings, 0 replies; 4+ messages in thread
From: Benno Evers @ 2018-08-10 13:38 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Namhyung Kim
  Cc: Benno Evers, Krister Johansen, Peter Zijlstra, Ingo Molnar,
	Alexander Shishkin, Jiri Olsa, linux-kernel, kernel-team

Haha, sorry, I was following some "how-to-contribute" guide out there, 
but it seems like I missed a step :D I sent out a new version with the 
missing sign-off.


On 10.08.2018 15:18, Arnaldo Carvalho de Melo wrote:
> Em Fri, Aug 10, 2018 at 01:55:37PM +0900, Namhyung Kim escreveu:
>> Hello,
>>
>> On Thu, Aug 09, 2018 at 11:53:48PM +0200, Benno Evers wrote:
>>> 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>
>>
>> It seems you missed the Signed-off-by though.
> Yeah, please collect Namhyung's Acked-by and provide yours, i.e. your
> patch should end with the following lines:
>
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Benno Evers <bevers@mesosphere.com>
>
> My git-am scripts will collect the Cc from the e-mail message and add
> the Link:  with the Message-id.
>
> Thanks,
>
> - Arnaldo
>   
>> Thanks,
>> Namhyung
>>
>>
>>> ---
>>>   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	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-09 21:53 [PATCH] perf tools: Check for null when copying nsinfo Benno Evers
2018-08-10  4:55 ` Namhyung Kim
2018-08-10 13:18   ` Arnaldo Carvalho de Melo
2018-08-10 13:38     ` Benno Evers

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox