• Qian Cai's avatar
    mm/page_alloc: silence a KASAN false positive · 9e15afa5
    Qian Cai authored
    kernel_init_free_pages() will use memset() on s390 to clear all pages from
    kmalloc_order() which will override KASAN redzones because a redzone was
    setup from the end of the allocation size to the end of the last page.
    Silence it by not reporting it there.  An example of the report is,
    
     BUG: KASAN: slab-out-of-bounds in __free_pages_ok
     Write of size 4096 at addr 000000014beaa000
     Call Trace:
     show_stack+0x152/0x210
     dump_stack+0x1f8/0x248
     print_address_description.isra.13+0x5e/0x4d0
     kasan_report+0x130/0x178
     check_memory_region+0x190/0x218
     memset+0x34/0x60
     __free_pages_ok+0x894/0x12f0
     kfree+0x4f2/0x5e0
     unpack_to_rootfs+0x60e/0x650
     populate_rootfs+0x56/0x358
     do_one_initcall+0x1f4/0xa20
     kernel_init_freeable+0x758/0x7e8
     kernel_init+0x1c/0x170
     ret_from_fork+0x24/0x28
     Memory state around the buggy address:
     000000014bea9f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     000000014bea9f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    >000000014beaa000: 03 fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe
                        ^
     000000014beaa080: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe
     000000014beaa100: fe fe fe fe fe fe fe fe fe fe fe fe fe fe
    
    Fixes: 6471384a ("mm: security: introduce init_on_alloc=1 and init_on_free=1 boot options")
    Signed-off-by: default avatarQian Cai <cai@lca.pw>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Tested-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Acked-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Link: http://lkml.kernel.org/r/20200610052154.5180-1-cai@lca.pwSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9e15afa5
page_alloc.c 242 KB