public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Check '/tmp/perf-' symbol file ownership
@ 2011-08-09 19:54 Pekka Enberg
  2011-08-09 19:55 ` Pekka Enberg
  2011-08-10  9:48 ` [tip:perf/urgent] perf symbols: " tip-bot for Pekka Enberg
  0 siblings, 2 replies; 5+ messages in thread
From: Pekka Enberg @ 2011-08-09 19:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Pekka Enberg, Arnaldo Carvalho de Melo, Frederic Weisbecker,
	Peter Zijlstra

The external symbol files are generated by JIT compilers, for example, but we
need to make sure they're ours before injecting them to 'perf report'.

Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 tools/perf/util/symbol.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index eec1963..a8b5371 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1504,6 +1504,17 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
 	dso->adjust_symbols = 0;
 
 	if (strncmp(dso->name, "/tmp/perf-", 10) == 0) {
+		struct stat st;
+
+		if (stat(dso->name, &st) < 0)
+			return -1;
+
+		if (st.st_uid && (st.st_uid != geteuid())) {
+			pr_warning("File %s not owned by current user or root, "
+				"ignoring it.\n", dso->name);
+			return -1;
+		}
+
 		ret = dso__load_perf_map(dso, map, filter);
 		dso->symtab_type = ret > 0 ? SYMTAB__JAVA_JIT :
 					      SYMTAB__NOT_FOUND;
-- 
1.7.0.4


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

* Re: [PATCH] perf tools: Check '/tmp/perf-' symbol file ownership
  2011-08-09 19:54 [PATCH] perf tools: Check '/tmp/perf-' symbol file ownership Pekka Enberg
@ 2011-08-09 19:55 ` Pekka Enberg
  2011-08-10  9:48 ` [tip:perf/urgent] perf symbols: " tip-bot for Pekka Enberg
  1 sibling, 0 replies; 5+ messages in thread
From: Pekka Enberg @ 2011-08-09 19:55 UTC (permalink / raw)
  To: linux-kernel
  Cc: Pekka Enberg, Arnaldo Carvalho de Melo, Frederic Weisbecker,
	Peter Zijlstra, Ingo Molnar

On Tue, Aug 9, 2011 at 10:54 PM, Pekka Enberg <penberg@kernel.org> wrote:
> The external symbol files are generated by JIT compilers, for example, but we
> need to make sure they're ours before injecting them to 'perf report'.
>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Pekka Enberg <penberg@kernel.org>

Doh - I forgot to CC Ingo who asked for this in the first place...

> ---
>  tools/perf/util/symbol.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
> index eec1963..a8b5371 100644
> --- a/tools/perf/util/symbol.c
> +++ b/tools/perf/util/symbol.c
> @@ -1504,6 +1504,17 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
>        dso->adjust_symbols = 0;
>
>        if (strncmp(dso->name, "/tmp/perf-", 10) == 0) {
> +               struct stat st;
> +
> +               if (stat(dso->name, &st) < 0)
> +                       return -1;
> +
> +               if (st.st_uid && (st.st_uid != geteuid())) {
> +                       pr_warning("File %s not owned by current user or root, "
> +                               "ignoring it.\n", dso->name);
> +                       return -1;
> +               }
> +
>                ret = dso__load_perf_map(dso, map, filter);
>                dso->symtab_type = ret > 0 ? SYMTAB__JAVA_JIT :
>                                              SYMTAB__NOT_FOUND;
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

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

* [tip:perf/urgent] perf symbols: Check '/tmp/perf-' symbol file ownership
  2011-08-09 19:54 [PATCH] perf tools: Check '/tmp/perf-' symbol file ownership Pekka Enberg
  2011-08-09 19:55 ` Pekka Enberg
@ 2011-08-10  9:48 ` tip-bot for Pekka Enberg
  2011-08-11  4:51   ` David Ahern
  1 sibling, 1 reply; 5+ messages in thread
From: tip-bot for Pekka Enberg @ 2011-08-10  9:48 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, hpa, mingo, peterz, penberg, fweisbec, tglx,
	mingo

Commit-ID:  981c1252691f4b855f2bb47ea93fb6052ea3aee2
Gitweb:     http://git.kernel.org/tip/981c1252691f4b855f2bb47ea93fb6052ea3aee2
Author:     Pekka Enberg <penberg@kernel.org>
AuthorDate: Tue, 9 Aug 2011 22:54:18 +0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 9 Aug 2011 15:23:08 -0300

perf symbols: Check '/tmp/perf-' symbol file ownership

The external symbol files are generated by JIT compilers, for example, but we
need to make sure they're ours before injecting them to 'perf report'.

Requested-by: Ingo Molnar <mingo@elte.hu>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1312919658-17158-1-git-send-email-penberg@kernel.org
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/symbol.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index eec1963..a8b5371 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1504,6 +1504,17 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
 	dso->adjust_symbols = 0;
 
 	if (strncmp(dso->name, "/tmp/perf-", 10) == 0) {
+		struct stat st;
+
+		if (stat(dso->name, &st) < 0)
+			return -1;
+
+		if (st.st_uid && (st.st_uid != geteuid())) {
+			pr_warning("File %s not owned by current user or root, "
+				"ignoring it.\n", dso->name);
+			return -1;
+		}
+
 		ret = dso__load_perf_map(dso, map, filter);
 		dso->symtab_type = ret > 0 ? SYMTAB__JAVA_JIT :
 					      SYMTAB__NOT_FOUND;

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

* Re: [tip:perf/urgent] perf symbols: Check '/tmp/perf-' symbol file ownership
  2011-08-10  9:48 ` [tip:perf/urgent] perf symbols: " tip-bot for Pekka Enberg
@ 2011-08-11  4:51   ` David Ahern
  2011-08-12 17:34     ` Pekka Enberg
  0 siblings, 1 reply; 5+ messages in thread
From: David Ahern @ 2011-08-11  4:51 UTC (permalink / raw)
  To: mingo, hpa, linux-kernel, acme, fweisbec, penberg, peterz, tglx,
	mingo
  Cc: linux-tip-commits

On 08/10/2011 03:48 AM, tip-bot for Pekka Enberg wrote:
> Commit-ID:  981c1252691f4b855f2bb47ea93fb6052ea3aee2
> Gitweb:     http://git.kernel.org/tip/981c1252691f4b855f2bb47ea93fb6052ea3aee2
> Author:     Pekka Enberg <penberg@kernel.org>
> AuthorDate: Tue, 9 Aug 2011 22:54:18 +0300
> Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
> CommitDate: Tue, 9 Aug 2011 15:23:08 -0300
> 
> perf symbols: Check '/tmp/perf-' symbol file ownership
> 
> The external symbol files are generated by JIT compilers, for example, but we
> need to make sure they're ours before injecting them to 'perf report'.
> 
> Requested-by: Ingo Molnar <mingo@elte.hu>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Link: http://lkml.kernel.org/r/1312919658-17158-1-git-send-email-penberg@kernel.org
> Signed-off-by: Pekka Enberg <penberg@kernel.org>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  tools/perf/util/symbol.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
> index eec1963..a8b5371 100644
> --- a/tools/perf/util/symbol.c
> +++ b/tools/perf/util/symbol.c
> @@ -1504,6 +1504,17 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
>  	dso->adjust_symbols = 0;
>  
>  	if (strncmp(dso->name, "/tmp/perf-", 10) == 0) {
> +		struct stat st;
> +
> +		if (stat(dso->name, &st) < 0)
> +			return -1;
> +
> +		if (st.st_uid && (st.st_uid != geteuid())) {
> +			pr_warning("File %s not owned by current user or root, "
> +				"ignoring it.\n", dso->name);
> +			return -1;
> +		}

Is the force option relevant here -- similar to perf_session__open()?

David

> +
>  		ret = dso__load_perf_map(dso, map, filter);
>  		dso->symtab_type = ret > 0 ? SYMTAB__JAVA_JIT :
>  					      SYMTAB__NOT_FOUND;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [tip:perf/urgent] perf symbols: Check '/tmp/perf-' symbol file ownership
  2011-08-11  4:51   ` David Ahern
@ 2011-08-12 17:34     ` Pekka Enberg
  0 siblings, 0 replies; 5+ messages in thread
From: Pekka Enberg @ 2011-08-12 17:34 UTC (permalink / raw)
  To: David Ahern
  Cc: mingo, hpa, linux-kernel, acme, fweisbec, peterz, tglx, mingo,
	linux-tip-commits

On Thu, Aug 11, 2011 at 7:51 AM, David Ahern <dsahern@gmail.com> wrote:
> On 08/10/2011 03:48 AM, tip-bot for Pekka Enberg wrote:
>> Commit-ID:  981c1252691f4b855f2bb47ea93fb6052ea3aee2
>> Gitweb:     http://git.kernel.org/tip/981c1252691f4b855f2bb47ea93fb6052ea3aee2
>> Author:     Pekka Enberg <penberg@kernel.org>
>> AuthorDate: Tue, 9 Aug 2011 22:54:18 +0300
>> Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
>> CommitDate: Tue, 9 Aug 2011 15:23:08 -0300
>>
>> perf symbols: Check '/tmp/perf-' symbol file ownership
>>
>> The external symbol files are generated by JIT compilers, for example, but we
>> need to make sure they're ours before injecting them to 'perf report'.
>>
>> Requested-by: Ingo Molnar <mingo@elte.hu>
>> Cc: Frederic Weisbecker <fweisbec@gmail.com>
>> Cc: Peter Zijlstra <peterz@infradead.org>
>> Link: http://lkml.kernel.org/r/1312919658-17158-1-git-send-email-penberg@kernel.org
>> Signed-off-by: Pekka Enberg <penberg@kernel.org>
>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>> ---
>>  tools/perf/util/symbol.c |   11 +++++++++++
>>  1 files changed, 11 insertions(+), 0 deletions(-)
>>
>> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
>> index eec1963..a8b5371 100644
>> --- a/tools/perf/util/symbol.c
>> +++ b/tools/perf/util/symbol.c
>> @@ -1504,6 +1504,17 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
>>       dso->adjust_symbols = 0;
>>
>>       if (strncmp(dso->name, "/tmp/perf-", 10) == 0) {
>> +             struct stat st;
>> +
>> +             if (stat(dso->name, &st) < 0)
>> +                     return -1;
>> +
>> +             if (st.st_uid && (st.st_uid != geteuid())) {
>> +                     pr_warning("File %s not owned by current user or root, "
>> +                             "ignoring it.\n", dso->name);
>> +                     return -1;
>> +             }
>
> Is the force option relevant here -- similar to perf_session__open()?

I don't know, I guess not. Ingo, Arnaldo?

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

end of thread, other threads:[~2011-08-12 17:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-09 19:54 [PATCH] perf tools: Check '/tmp/perf-' symbol file ownership Pekka Enberg
2011-08-09 19:55 ` Pekka Enberg
2011-08-10  9:48 ` [tip:perf/urgent] perf symbols: " tip-bot for Pekka Enberg
2011-08-11  4:51   ` David Ahern
2011-08-12 17:34     ` Pekka Enberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox