diff options
author | Wang Nan <wangnan0@huawei.com> | 2016-05-24 05:21:27 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-05-27 08:41:23 -0400 |
commit | 38272dc4f1b17437871b786d567e1242d0904f5a (patch) | |
tree | b4f32688639a3ad8fec9ff54ced5c3ca584a0945 | |
parent | 275ae411e56f8f900fa364da29c4706f9af4e1f3 (diff) |
perf symbols: Check kptr_restrict for root
If kptr_restrict is set to 2, even root is not allowed to see pointers.
This patch checks kptr_restrict even if euid == 0. For root, report
error if kptr_restrict is 2.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1464081688-167940-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/symbol.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 20f9cb32b703..54c4ff2b1cee 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -1933,17 +1933,17 @@ int setup_intlist(struct intlist **list, const char *list_str, | |||
1933 | static bool symbol__read_kptr_restrict(void) | 1933 | static bool symbol__read_kptr_restrict(void) |
1934 | { | 1934 | { |
1935 | bool value = false; | 1935 | bool value = false; |
1936 | FILE *fp = fopen("/proc/sys/kernel/kptr_restrict", "r"); | ||
1936 | 1937 | ||
1937 | if (geteuid() != 0) { | 1938 | if (fp != NULL) { |
1938 | FILE *fp = fopen("/proc/sys/kernel/kptr_restrict", "r"); | 1939 | char line[8]; |
1939 | if (fp != NULL) { | ||
1940 | char line[8]; | ||
1941 | 1940 | ||
1942 | if (fgets(line, sizeof(line), fp) != NULL) | 1941 | if (fgets(line, sizeof(line), fp) != NULL) |
1943 | value = atoi(line) != 0; | 1942 | value = (geteuid() != 0) ? |
1943 | (atoi(line) != 0) : | ||
1944 | (atoi(line) == 2); | ||
1944 | 1945 | ||
1945 | fclose(fp); | 1946 | fclose(fp); |
1946 | } | ||
1947 | } | 1947 | } |
1948 | 1948 | ||
1949 | return value; | 1949 | return value; |