Kees suggested that, 'offset' is unsigned long, not a pointer,
thus %lx should be used to print it, not the %px. Also, I don't
see any reason to prepend offset with 0s. Replace %px with %lx.

Before patch:
  # echo "p:probe_a/main /tmp/a.out:0x594" > uprobe_events
  # cat uprobe_events
    p:probe_a/main /tmp/a.out:0x0000000000000594

After patch:
  # echo "p:probe_a/main /tmp/a.out:0x594" > uprobe_events
  # cat uprobe_events
    p:probe_a/main /tmp/a.out:0x594

Fixes: 0e4d819d0893 ("trace_uprobe: Display correct offset in uprobe_events")
Suggested-by: Kees Cook <keesc...@chromium.org>
Signed-off-by: Ravi Bangoria <ravi.bango...@linux.vnet.ibm.com>
---
 kernel/trace/trace_uprobe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index 268029ae1be6..c2c965398893 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -608,7 +608,7 @@ static int probes_seq_show(struct seq_file *m, void *v)
 
        /* Don't print "0x  (null)" when offset is 0 */
        if (tu->offset) {
-               seq_printf(m, "0x%px", (void *)tu->offset);
+               seq_printf(m, "0x%lx", tu->offset);
        } else {
                switch (sizeof(void *)) {
                case 4:
-- 
2.13.6

Reply via email to