• Masami Hiramatsu's avatar
    tracing/probe: Fix to check the difference of nr_args before adding probe · d2aea95a
    Masami Hiramatsu authored
    Steven reported that a test triggered:
    
    ==================================================================
     BUG: KASAN: slab-out-of-bounds in trace_kprobe_create+0xa9e/0xe40
     Read of size 8 at addr ffff8880c4f25a48 by task ftracetest/4798
    
     CPU: 2 PID: 4798 Comm: ftracetest Not tainted 5.3.0-rc6-test+ #30
     Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016
     Call Trace:
      dump_stack+0x7c/0xc0
      ? trace_kprobe_create+0xa9e/0xe40
      print_address_description+0x6c/0x332
      ? trace_kprobe_create+0xa9e/0xe40
      ? trace_kprobe_create+0xa9e/0xe40
      __kasan_report.cold.6+0x1a/0x3b
      ? trace_kprobe_create+0xa9e/0xe40
      kasan_report+0xe/0x12
      trace_kprobe_create+0xa9e/0xe40
      ? print_kprobe_event+0x280/0x280
      ? match_held_lock+0x1b/0x240
      ? find_held_lock+0xac/0xd0
      ? fs_reclaim_release.part.112+0x5/0x20
      ? lock_downgrade+0x350/0x350
      ? kasan_unpoison_shadow+0x30/0x40
      ? __kasan_kmalloc.constprop.6+0xc1/0xd0
      ? trace_kprobe_create+0xe40/0xe40
      ? trace_kprobe_create+0xe40/0xe40
      create_or_delete_trace_kprobe+0x2e/0x60
      trace_run_command+0xc3/0xe0
      ? trace_panic_handler+0x20/0x20
      ? kasan_unpoison_shadow+0x30/0x40
      trace_parse_run_command+0xdc/0x163
      vfs_write+0xe1/0x240
      ksys_write+0xba/0x150
      ? __ia32_sys_read+0x50/0x50
      ? tracer_hardirqs_on+0x61/0x180
      ? trace_hardirqs_off_caller+0x43/0x110
      ? mark_held_locks+0x29/0xa0
      ? do_syscall_64+0x14/0x260
      do_syscall_64+0x68/0x260
    
    Fix to check the difference of nr_args before adding probe
    on existing probes. This also may set the error log index
    bigger than the number of command parameters. In that case
    it sets the error position is next to the last parameter.
    
    Link: http://lkml.kernel.org/r/156966474783.3478.13217501608215769150.stgit@devnote2
    
    Fixes: ca89bc07 ("tracing/kprobe: Add multi-probe per event support")
    Reported-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    d2aea95a
trace_probe.c 26.2 KB