aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca BRUNO <lucab@lucabruno.net>2023-08-28 12:04:47 +0200
committeryonghong-song <ys114321@gmail.com>2023-08-31 08:22:47 -0400
commit0fcb3461197d360e963688f5985fe36a0d3337cd (patch)
tree5cecd3ba565341bb334d2d7f2913f4e98d576c55
parent6813fbce8718bede5075272cdc3ab9314eb91b5c (diff)
downloadbcc-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.c4
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;