On (11/30/17 16:07), Andrey Ryabinin wrote:
[..]
> >> You can try dirty patch from here:
> >> https://groups.google.com/d/msg/kasan-dev/iDb5bhcMBT0/55QzwWaHAwAJ
> >> It should make KASAN print the exact variable name and frame where it
> >> was allocated.
> > 
> > would be good if Fengguang can try this out. I can't reproduce the
> > problem on my x86 box (linux-next and Linus's trees both work fine
> > for me with KASAN + lockdep + TRACE_IRQ).
> 
> I suspect you don't have gcc 7. That's is requirement for use-after-scope.

I do have it.

gcc --version
gcc (GCC) 7.2.1 20171123

tested with

$ grep GCC .config
CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE=y
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set

got the following use-after-scope:

 ==================================================================
 BUG: KASAN: use-after-scope in pcpu_setup_first_chunk+0x902/0xa21
 Write of size 8 at addr ffffffff81e07d78 by task swapper/0
 
 CPU: 0 PID: 0 Comm: swapper Not tainted 
4.15.0-rc1-dbg-00261-g716b8dd05fd3-dirty #927
 Call Trace:
  dump_stack+0xca/0x146
  ? _atomic_dec_and_lock+0xdd/0xdd
  ? show_regs_print_info+0x39/0x39
  ? pcpu_setup_first_chunk+0x902/0xa21
  print_address_description+0x6e/0x207
  ? pcpu_setup_first_chunk+0x902/0xa21
  kasan_report+0x21e/0x244
  pcpu_setup_first_chunk+0x902/0xa21
  ? pcpu_free_alloc_info+0x27/0x27
  ? memblock_remove+0x12/0x12
  pcpu_embed_first_chunk+0x3fa/0x4a6
  ? pcpup_populate_pte+0xa/0xa
  ? pcpu_fc_free+0x40/0x40
  setup_per_cpu_areas+0x7c/0x2df
  start_kernel+0x174/0x489
  ? mem_encrypt_init+0x6/0x6
  ? load_ucode_bsp+0x7f/0xe0
  secondary_startup_64+0xa5/0xb0
 
 
 Memory state around the buggy address:
  ffffffff81e07c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  ffffffff81e07c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 >ffffffff81e07d00: 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f8
                                                                 ^
  ffffffff81e07d80: f2 f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00 00
  ffffffff81e07e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ==================================================================

no printk() related reports.

        -ss

Reply via email to