Em Thu, Nov 12, 2015 at 04:04:44PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Nov 12, 2015 at 10:59:36AM -0800, Brendan Gregg escreveu:
> > On Thu, Nov 12, 2015 at 10:52 AM, Arnaldo Carvalho de Melo
> > <arnaldo.m...@gmail.com> wrote:
> > > Em Thu, Nov 12, 2015 at 10:27:26AM -0800, Brendan Gregg escreveu:
> > >> G'Day,
> > >>
> > >> # perf record -F 99 -a -g -- sleep 30
> > >> [...]
> > >> # perf report -n --stdio
> > >> File /tmp/perf-25958.map not owned by current user or root, ignoring it.
> > >>
> > >> Can root bypass this test? I'm root, and profiling apps from different
> > >
> > > In other places such tests are overridable via '-f' (force), this one
> > > should too, I think.
> > >
> > > # perf report
> > > File perf.data not owned by current user or root (use -f to override)
> > > [root@zoo linux]# ls -la perf.data
> > > -rw-------. 1 acme acme 20032 Nov 12 15:50 perf.data
> > 
> > Yes, a -f option would work too...
> 
> Cooking up a patch right now.

This way it gets consistent with the other checks, please let me know if
I can have your Tested-by, checking other places where this check is
done to make it follow this rule too.

- Arnaldo

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 2853ad2bd435..f256fac1e722 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -44,7 +44,7 @@
 struct report {
        struct perf_tool        tool;
        struct perf_session     *session;
-       bool                    force, use_tui, use_gtk, use_stdio;
+       bool                    use_tui, use_gtk, use_stdio;
        bool                    hide_unresolved;
        bool                    dont_use_callchains;
        bool                    show_full_info;
@@ -678,7 +678,7 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
                   "file", "vmlinux pathname"),
        OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name,
                   "file", "kallsyms pathname"),
-       OPT_BOOLEAN('f', "force", &report.force, "don't complain, do it"),
+       OPT_BOOLEAN('f', "force", &symbol_conf.force, "don't complain, do it"),
        OPT_BOOLEAN('m', "modules", &symbol_conf.use_modules,
                    "load module symbols - WARNING: use only with -k and LIVE 
kernel"),
        OPT_BOOLEAN('n', "show-nr-samples", &symbol_conf.show_nr_samples,
@@ -832,7 +832,7 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
        }
 
        file.path  = input_name;
-       file.force = report.force;
+       file.force = symbol_conf.force;
 
 repeat:
        session = perf_session__new(&file, false, &report.tool);
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 09343a880c0b..cd08027a6d2c 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1436,9 +1436,9 @@ int dso__load(struct dso *dso, struct map *map, 
symbol_filter_t filter)
                if (lstat(dso->name, &st) < 0)
                        goto out;
 
-               if (st.st_uid && (st.st_uid != geteuid())) {
+               if (!symbol_conf.force && st.st_uid && (st.st_uid != 
geteuid())) {
                        pr_warning("File %s not owned by current user or root, "
-                               "ignoring it.\n", dso->name);
+                                  "ignoring it (use -f to override).\n", 
dso->name);
                        goto out;
                }
 
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 40073c60b83d..dcd786e364f2 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -84,6 +84,7 @@ struct symbol_conf {
        unsigned short  priv_size;
        unsigned short  nr_events;
        bool            try_vmlinux_path,
+                       force,
                        ignore_vmlinux,
                        ignore_vmlinux_buildid,
                        show_kernel_path,
--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to