diff options
author | Luca BRUNO <lucab@lucabruno.net> | 2023-08-28 12:04:47 +0200 |
---|---|---|
committer | yonghong-song <ys114321@gmail.com> | 2023-08-31 08:22:47 -0400 |
commit | 0fcb3461197d360e963688f5985fe36a0d3337cd (patch) | |
tree | 5cecd3ba565341bb334d2d7f2913f4e98d576c55 | |
parent | 6813fbce8718bede5075272cdc3ab9314eb91b5c (diff) | |
download | bcc-0fcb3461197d360e963688f5985fe36a0d3337cd.tar.gz |
cc: remove a spurious check for UID 0
This drops an hardcoded check for the root user-ID before accessing
`/proc/kallsyms`, in order to fix a bug which is preventing proper
kernel symbols resolution by non-root users.
The `/proc/kallsyms` file is generally available to non-privileged
users:
```
> runuser -u nobody -- wc -l /proc/kallsyms
217514 /proc/kallsyms
```
Its content is further controlled by the `CAP_SYSLOG` capability
through `/proc/sys/kernel/kptr_restrict`:
https://man7.org/linux/man-pages/man7/capabilities.7.html
As such, it is better to directly open it and rely on `fopen()`
for privileges checking.
-rw-r--r-- | src/cc/bcc_proc.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/src/cc/bcc_proc.c b/src/cc/bcc_proc.c index 2a96d9a2..7ebea824 100644 --- a/src/cc/bcc_proc.c +++ b/src/cc/bcc_proc.c @@ -262,10 +262,6 @@ int bcc_procutils_each_ksym(bcc_procutils_ksymcb callback, void *payload) { FILE *kallsyms; unsigned long long addr; - /* root is needed to list ksym addresses */ - if (geteuid() != 0) - return -1; - kallsyms = fopen("/proc/kallsyms", "r"); if (!kallsyms) return -1; |