bisecting fixing commit since fa5941f45d7ed070118b7c209b7f2c3a034293bd building syzkaller on 618456b4f4f74528ac6b9d709b1870d0e1d70eb2 testing commit fa5941f45d7ed070118b7c209b7f2c3a034293bd with gcc (GCC) 8.1.0 kernel signature: 226f6b35caeac71c4228c7dc14d395149b7c04dd74f5ca5ecff3342a426ac1d0 all runs: crashed: KASAN: use-after-free Read in ceph_destroy_options testing current HEAD 27ce4f2a6817e38ca74c643d47a96359f6cc0c1c testing commit 27ce4f2a6817e38ca74c643d47a96359f6cc0c1c with gcc (GCC) 8.1.0 kernel signature: 81da835c52ef722c1e733bd9ed824e18e1b64ce1c3fb791c14363ab81d77d9be run #0: OK run #1: crashed: KASAN: use-after-free Read in ceph_destroy_options run #2: crashed: KASAN: use-after-free Read in ceph_destroy_options run #3: crashed: KASAN: use-after-free Read in ceph_destroy_options run #4: crashed: KASAN: invalid-free in ceph_destroy_options run #5: crashed: KASAN: use-after-free Read in ceph_destroy_options run #6: crashed: KASAN: invalid-free in ceph_destroy_options run #7: crashed: KASAN: invalid-free in ceph_destroy_options run #8: crashed: KASAN: use-after-free Read in ceph_destroy_options run #9: crashed: KASAN: use-after-free Read in ceph_destroy_options revisions tested: 2, total time: 27m11.128473577s (build: 15m34.903090111s, test: 10m53.316516546s) the crash still happens on HEAD commit msg: Linux 4.14.206 crash: KASAN: use-after-free Read in ceph_destroy_options Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 warn_alloc.cold.114+0xa2/0x1be mm/page_alloc.c:3255 ================================================================== BUG: KASAN: use-after-free in ceph_destroy_options+0xc6/0xf0 net/ceph/ceph_common.c:283 __alloc_pages_slowpath+0x2056/0x2660 mm/page_alloc.c:4102 Read of size 8 at addr ffff888092555c90 by task syz-executor.5/864 __alloc_pages_nodemask+0x60f/0x770 mm/page_alloc.c:4205 __alloc_pages include/linux/gfp.h:484 [inline] __alloc_pages_node include/linux/gfp.h:497 [inline] kmem_getpages mm/slab.c:1419 [inline] cache_grow_begin+0x80/0x400 mm/slab.c:2676 fallback_alloc+0x203/0x2c0 mm/slab.c:3217 ____cache_alloc_node+0x1c7/0x1e0 mm/slab.c:3285 __do_cache_alloc mm/slab.c:3354 [inline] slab_alloc mm/slab.c:3382 [inline] __do_kmalloc mm/slab.c:3718 [inline] __kmalloc+0x213/0x7b0 mm/slab.c:3729 kmalloc include/linux/slab.h:493 [inline] mempool_kmalloc+0x10/0x20 mm/mempool.c:468 mempool_create_node+0x298/0x370 mm/mempool.c:211 mempool_create+0x15/0x20 mm/mempool.c:179 mempool_create_kmalloc_pool include/linux/mempool.h:61 [inline] create_fs_client fs/ceph/super.c:668 [inline] ceph_mount+0x786/0x178a fs/ceph/super.c:1032 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x458e29 RSP: 002b:00007fc9e4ef3c78 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000458e29 RDX: 0000000020000100 RSI: 0000000020000200 RDI: 0000000020000040 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fc9e4ef46d4 R13: 00000000004c4e21 R14: 00000000004d8a88 R15: 00000000ffffffff CPU: 0 PID: 864 Comm: syz-executor.5 Not tainted 4.14.206-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 print_address_description.cold.7+0x9/0x1c9 mm/kasan/report.c:252 kasan_report_error mm/kasan/report.c:351 [inline] kasan_report.cold.8+0x11a/0x2d3 mm/kasan/report.c:409 __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:430 ceph_destroy_options+0xc6/0xf0 net/ceph/ceph_common.c:283 ceph_mount+0xbb9/0x178a fs/ceph/super.c:1036 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x458e29 RSP: 002b:00007f2d9aa83c78 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000458e29 RDX: 0000000020000100 RSI: 0000000020000200 RDI: 0000000020000040 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f2d9aa846d4 R13: 00000000004c4e21 R14: 00000000004d8a88 R15: 00000000ffffffff Allocated by task 864: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack+0x43/0xd0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:551 kmem_cache_alloc_trace+0x152/0x7b0 mm/slab.c:3618 kmalloc include/linux/slab.h:488 [inline] kzalloc include/linux/slab.h:661 [inline] ceph_parse_options+0xe3/0xd30 net/ceph/ceph_common.c:349 parse_mount_options fs/ceph/super.c:501 [inline] ceph_mount+0x494/0x178a fs/ceph/super.c:1025 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb Freed by task 864: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack+0x43/0xd0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_slab_free+0x71/0xc0 mm/kasan/kasan.c:524 __cache_free mm/slab.c:3496 [inline] kfree+0xcc/0x270 mm/slab.c:3815 ceph_destroy_options+0xbc/0xf0 net/ceph/ceph_common.c:289 ceph_destroy_client+0x8f/0xb0 net/ceph/ceph_common.c:671 create_fs_client fs/ceph/super.c:684 [inline] ceph_mount+0xc50/0x178a fs/ceph/super.c:1032 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb The buggy address belongs to the object at ffff888092555bc0 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 208 bytes inside of 256-byte region [ffff888092555bc0, ffff888092555cc0) The buggy address belongs to the page: page:ffffea0002495540 count:1 mapcount:0 mapping:ffff888092555080 index:0xffff888092555440 flags: 0x1fffc0000000100(slab) raw: 01fffc0000000100 ffff888092555080 ffff888092555440 000000010000000a raw: ffffea0002497620 ffffea0002911aa0 ffff8880b64007c0 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888092555b80: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb CPU: 1 PID: 25548 Comm: syz-executor.4 Not tainted 4.14.206-syzkaller #0 ffff888092555c00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 >ffff888092555c80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc Call Trace: ^ ffff888092555d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 ffff888092555d80: 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc fc warn_alloc.cold.114+0xa2/0x1be mm/page_alloc.c:3255 ================================================================== ================================================================== BUG: KASAN: double-free or invalid-free in ceph_destroy_options+0xb4/0xf0 net/ceph/ceph_common.c:288 __alloc_pages_slowpath+0x2056/0x2660 mm/page_alloc.c:4102 __alloc_pages_nodemask+0x60f/0x770 mm/page_alloc.c:4205 __alloc_pages include/linux/gfp.h:484 [inline] __alloc_pages_node include/linux/gfp.h:497 [inline] kmem_getpages mm/slab.c:1419 [inline] cache_grow_begin+0x80/0x400 mm/slab.c:2676 fallback_alloc+0x203/0x2c0 mm/slab.c:3217 ____cache_alloc_node+0x1c7/0x1e0 mm/slab.c:3285 __do_cache_alloc mm/slab.c:3354 [inline] slab_alloc mm/slab.c:3382 [inline] __do_kmalloc mm/slab.c:3718 [inline] __kmalloc+0x213/0x7b0 mm/slab.c:3729 kmalloc include/linux/slab.h:493 [inline] mempool_kmalloc+0x10/0x20 mm/mempool.c:468 mempool_create_node+0x298/0x370 mm/mempool.c:211 mempool_create+0x15/0x20 mm/mempool.c:179 mempool_create_kmalloc_pool include/linux/mempool.h:61 [inline] create_fs_client fs/ceph/super.c:668 [inline] ceph_mount+0x786/0x178a fs/ceph/super.c:1032 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x458e29 RSP: 002b:00007f07fb11dc78 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000458e29 RDX: 0000000020000100 RSI: 0000000020000200 RDI: 0000000020000040 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f07fb11e6d4 R13: 00000000004c4e21 R14: 00000000004d8a88 R15: 00000000ffffffff CPU: 0 PID: 838 Comm: syz-executor.0 Tainted: G B 4.14.206-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 print_address_description.cold.7+0x9/0x1c9 mm/kasan/report.c:252 kasan_report_double_free+0x55/0x80 mm/kasan/report.c:333 kasan_slab_free+0xa3/0xc0 mm/kasan/kasan.c:514 __cache_free mm/slab.c:3496 [inline] kfree+0xcc/0x270 mm/slab.c:3815 ceph_destroy_options+0xb4/0xf0 net/ceph/ceph_common.c:288 ceph_mount+0xbb9/0x178a fs/ceph/super.c:1036 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x458e29 RSP: 002b:00007fc9e4ef3c78 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000458e29 RDX: 0000000020000100 RSI: 0000000020000200 RDI: 0000000020000040 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fc9e4ef46d4 R13: 00000000004c4e21 R14: 00000000004d8a88 R15: 00000000ffffffff Allocated by task 838: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack+0x43/0xd0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:551 kmem_cache_alloc_trace+0x152/0x7b0 mm/slab.c:3618 kmalloc include/linux/slab.h:488 [inline] kmalloc_array include/linux/slab.h:606 [inline] kcalloc include/linux/slab.h:618 [inline] ceph_parse_options+0x127/0xd30 net/ceph/ceph_common.c:352 parse_mount_options fs/ceph/super.c:501 [inline] ceph_mount+0x494/0x178a fs/ceph/super.c:1025 mount_fs+0x84/0x26e fs/super.c:1237 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 CPU: 1 PID: 25400 Comm: syz-executor.4 Tainted: G B 4.14.206-syzkaller #0 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 Call Trace: entry_SYSCALL_64_after_hwframe+0x46/0xbb __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0xf7/0x13b lib/dump_stack.c:58 warn_alloc.cold.114+0xa2/0x1be mm/page_alloc.c:3255 Freed by task 838: save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 save_stack+0x43/0xd0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_slab_free+0x71/0xc0 mm/kasan/kasan.c:524 __cache_free mm/slab.c:3496 [inline] kfree+0xcc/0x270 mm/slab.c:3815 __alloc_pages_slowpath+0x2056/0x2660 mm/page_alloc.c:4102 ceph_destroy_options+0xb4/0xf0 net/ceph/ceph_common.c:288 ceph_destroy_client+0x8f/0xb0 net/ceph/ceph_common.c:671 create_fs_client fs/ceph/super.c:684 [inline] ceph_mount+0xc50/0x178a fs/ceph/super.c:1032 mount_fs+0x84/0x26e fs/super.c:1237 __alloc_pages_nodemask+0x60f/0x770 mm/page_alloc.c:4205 vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 SYSC_mount fs/namespace.c:3095 [inline] SyS_mount+0xb8/0xd0 fs/namespace.c:3072 __alloc_pages include/linux/gfp.h:484 [inline] __alloc_pages_node include/linux/gfp.h:497 [inline] kmem_getpages mm/slab.c:1419 [inline] cache_grow_begin+0x80/0x400 mm/slab.c:2676 do_syscall_64+0x1c9/0x5b0 arch/x86/entry/common.c:292 fallback_alloc+0x203/0x2c0 mm/slab.c:3217 entry_SYSCALL_64_after_hwframe+0x46/0xbb ____cache_alloc_node+0x1c7/0x1e0 mm/slab.c:3285 The buggy address belongs to the object at ffff88808f00d600 which belongs to the cache kmalloc-8192 of size 8192 __do_cache_alloc mm/slab.c:3354 [inline] slab_alloc mm/slab.c:3382 [inline] __do_kmalloc mm/slab.c:3718 [inline] __kmalloc+0x213/0x7b0 mm/slab.c:3729 The buggy address is located 0 bytes inside of 8192-byte region [ffff88808f00d600, ffff88808f00f600) The buggy address belongs to the page: page:ffffea00023c0300 count:1 mapcount:0 mapping:ffff88808f00d600 index:0x0 compound_mapcount: 0 kmalloc include/linux/slab.h:493 [inline] mempool_kmalloc+0x10/0x20 mm/mempool.c:468 flags: 0x1fffc0000008100(slab|head) mempool_create_node+0x298/0x370 mm/mempool.c:211 raw: 01fffc0000008100 ffff88808f00d600 0000000000000000 0000000100000001 mempool_create+0x15/0x20 mm/mempool.c:179 raw: ffffea00024d2220 ffffea000118cc20 ffff8880b6402080 0000000000000000 mempool_create_kmalloc_pool include/linux/mempool.h:61 [inline] create_fs_client fs/ceph/super.c:668 [inline] ceph_mount+0x786/0x178a fs/ceph/super.c:1032 page dumped because: kasan: bad access detected mount_fs+0x84/0x26e fs/super.c:1237 Memory state around the buggy address: ffff88808f00d500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc vfs_kern_mount.part.33+0x58/0x3c0 fs/namespace.c:1046 ffff88808f00d580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2549 [inline] do_mount+0x36b/0x26a0 fs/namespace.c:2879 >ffff88808f00d600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff88808f00d680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88808f00d700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================