Skip to content
  • Dmitry Vyukov's avatar
    kprobes: Avoid false KASAN reports during stack copy · 9254139a
    Dmitry Vyukov authored
    
    
    Kprobes save and restore raw stack chunks with memcpy().
    With KASAN these chunks can contain poisoned stack redzones,
    as the result memcpy() interceptor produces false
    stack out-of-bounds reports.
    
    Use __memcpy() instead of memcpy() for stack copying.
    __memcpy() is not instrumented by KASAN and does not lead
    to the false reports.
    
    Currently there is a spew of KASAN reports during boot
    if CONFIG_KPROBES_SANITY_TEST is enabled:
    
    [   ] Kprobe smoke test: started
    [   ] ==================================================================
    [   ] BUG: KASAN: stack-out-of-bounds in setjmp_pre_handler+0x17c/0x280 at addr ffff88085259fba8
    [   ] Read of size 64 by task swapper/0/1
    [   ] page:ffffea00214967c0 count:0 mapcount:0 mapping:          (null) index:0x0
    [   ] flags: 0x2fffff80000000()
    [   ] page dumped because: kasan: bad access detected
    [...]
    
    Reported-by: default avatarCAI Qian <caiqian@redhat.com>
    Tested-by: default avatarCAI Qian <caiqian@redhat.com>
    Signed-off-by: default avatarDmitry Vyukov <dvyukov@google.com>
    Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: kasan-dev@googlegroups.com
    [ Improved various details. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    9254139a