Skip to content

Commit bcbd385

Browse files
Thomas Richterrostedt
authored andcommitted
kprobes: Fix random address output of blacklist file
File /sys/kernel/debug/kprobes/blacklist displays random addresses: [root@s8360046 linux]# cat /sys/kernel/debug/kprobes/blacklist 0x0000000047149a90-0x00000000bfcb099a print_type_x8 .... This breaks 'perf probe' which uses the blacklist file to prohibit probes on certain functions by checking the address range. Fix this by printing the correct (unhashed) address. The file mode is read all but this is not an issue as the file hierarchy points out: # ls -ld /sys/ /sys/kernel/ /sys/kernel/debug/ /sys/kernel/debug/kprobes/ /sys/kernel/debug/kprobes/blacklist dr-xr-xr-x 12 root root 0 Apr 19 07:56 /sys/ drwxr-xr-x 8 root root 0 Apr 19 07:56 /sys/kernel/ drwx------ 16 root root 0 Apr 19 06:56 /sys/kernel/debug/ drwxr-xr-x 2 root root 0 Apr 19 06:56 /sys/kernel/debug/kprobes/ -r--r--r-- 1 root root 0 Apr 19 06:56 /sys/kernel/debug/kprobes/blacklist Everything in and below /sys/kernel/debug is rwx to root only, no group or others have access. Background: Directory /sys/kernel/debug/kprobes is created by debugfs_create_dir() which sets the mode bits to rwxr-xr-x. Maybe change that to use the parent's directory mode bits instead? Link: http://lkml.kernel.org/r/[email protected] Fixes: ad67b74 ("printk: hash addresses printed with %p") Cc: [email protected] Cc: <[email protected]> # v4.15+ Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: Anil S Keshavamurthy <[email protected]> Cc: David S Miller <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: [email protected] Signed-off-by: Thomas Richter <[email protected]> Signed-off-by: Steven Rostedt (VMware) <[email protected]>
1 parent ba16293 commit bcbd385

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/kprobes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2428,7 +2428,7 @@ static int kprobe_blacklist_seq_show(struct seq_file *m, void *v)
24282428
struct kprobe_blacklist_entry *ent =
24292429
list_entry(v, struct kprobe_blacklist_entry, list);
24302430

2431-
seq_printf(m, "0x%p-0x%p\t%ps\n", (void *)ent->start_addr,
2431+
seq_printf(m, "0x%px-0x%px\t%ps\n", (void *)ent->start_addr,
24322432
(void *)ent->end_addr, (void *)ent->start_addr);
24332433
return 0;
24342434
}

0 commit comments

Comments
 (0)