[syzbot] [mm?] BUG: unable to handle kernel NULL pointer dereference in __swap_duplicate
From: syzbot
Date: Tue Jun 04 2024 - 01:39:34 EST
Hello,
syzbot found the following issue on:
HEAD commit: 4a4be1ad3a6e Revert "vfs: Delete the associated dentry whe..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=16e4e206980000
kernel config: https://syzkaller.appspot.com/x/.config?x=bd6024aedb15e15c
dashboard link: https://syzkaller.appspot.com/bug?extid=bf8cb7ae183cd5693ad9
compiler: aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11673ed2980000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=150a3de6980000
Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/384ffdcca292/non_bootable_disk-4a4be1ad.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/75957361122b/vmlinux-4a4be1ad.xz
kernel image: https://storage.googleapis.com/syzbot-assets/6c766b0ec377/Image-4a4be1ad.gz.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+bf8cb7ae183cd5693ad9@xxxxxxxxxxxxxxxxxxxxxxxxx
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000058
Mem abort info:
ESR = 0x0000000096000004
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x04: level 0 translation fault
Data abort info:
ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
CM = 0, WnR = 0, TnD = 0, TagAccess = 0
GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
user pgtable: 4k pages, 52-bit VAs, pgdp=00000000455f8880
[0000000000000058] pgd=0800000046e35003, p4d=0000000000000000
Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
Modules linked in:
CPU: 1 PID: 3190 Comm: syz-executor681 Not tainted 6.10.0-rc1-syzkaller-00027-g4a4be1ad3a6e #0
Hardware name: linux,dummy-virt (DT)
pstate: 81400009 (Nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : lock_cluster mm/swapfile.c:356 [inline]
pc : lock_cluster_or_swap_info mm/swapfile.c:380 [inline]
pc : __swap_duplicate+0x3c/0x178 mm/swapfile.c:3339
lr : swap_duplicate+0x2c/0x54 mm/swapfile.c:3407
sp : ffff800088dd3910
x29: ffff800088dd3910 x28: fff0000006e8cc88 x27: f0f0000006d3bb40
x26: 0000000000000000 x25: fdf0000005ab3900 x24: fcf00000060bf0c0
x23: 0000000000000001 x22: 0000000000000000 x21: 0000000000000000
x20: 0000000000000080 x19: 0000000000000000 x18: 0000000000000001
x17: 0000000000000000 x16: 1f9e000000c1afc1 x15: 0000000000000001
x14: 0000000000000002 x13: 0000000000000000 x12: 0000000000071c09
x11: 0000000000000000 x10: 0000ffffced91000 x9 : 00000000000000f7
x8 : 0000000000000038 x7 : 0000000000000026 x6 : 0000000200100173
x5 : ffff800088dd3900 x4 : 0000000000000080 x3 : ffff8000828a1ad8
x2 : 0000000000000002 x1 : 0000000000000001 x0 : 0800000000000000
Call trace:
swp_offset include/linux/swapops.h:109 [inline]
__swap_duplicate+0x3c/0x178 mm/swapfile.c:3338
swap_duplicate+0x2c/0x54 mm/swapfile.c:3407
copy_nonpresent_pte mm/memory.c:793 [inline]
copy_pte_range mm/memory.c:1129 [inline]
copy_pmd_range mm/memory.c:1240 [inline]
copy_pud_range mm/memory.c:1277 [inline]
copy_p4d_range mm/memory.c:1301 [inline]
copy_page_range+0x1154/0x20a0 mm/memory.c:1399
dup_mmap kernel/fork.c:751 [inline]
dup_mm kernel/fork.c:1688 [inline]
copy_mm+0x420/0x7d4 kernel/fork.c:1737
copy_process+0xc30/0x1484 kernel/fork.c:2390
kernel_clone+0x64/0x360 kernel/fork.c:2797
__do_sys_clone+0x70/0xa8 kernel/fork.c:2940
__se_sys_clone kernel/fork.c:2908 [inline]
__arm64_sys_clone+0x20/0x2c kernel/fork.c:2908
__invoke_syscall arch/arm64/kernel/syscall.c:34 [inline]
invoke_syscall+0x48/0x118 arch/arm64/kernel/syscall.c:48
el0_svc_common.constprop.0+0x40/0xe0 arch/arm64/kernel/syscall.c:133
do_el0_svc+0x1c/0x28 arch/arm64/kernel/syscall.c:152
el0_svc+0x34/0xf8 arch/arm64/kernel/entry-common.c:712
el0t_64_sync_handler+0x100/0x12c arch/arm64/kernel/entry-common.c:730
el0t_64_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:598
Code: b0012ee3 912b6063 f8627875 9240e413 (f9402ea2)
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
0: b0012ee3 adrp x3, 0x25dd000
4: 912b6063 add x3, x3, #0xad8
8: f8627875 ldr x21, [x3, x2, lsl #3]
c: 9240e413 and x19, x0, #0x3ffffffffffffff
* 10: f9402ea2 ldr x2, [x21, #88] <-- trapping instruction
---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup