WARNING: bad unlock balance in do_con_write

5 views
Skip to first unread message

syzbot

unread,
Sep 6, 2020, 8:24:25 PM9/6/20
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 2f166cdc Linux 4.14.196
git tree: linux-4.14.y
console output: https://syzkaller.appspot.com/x/log.txt?x=14c58829900000
kernel config: https://syzkaller.appspot.com/x/.config?x=e2677667b00dfecb
dashboard link: https://syzkaller.appspot.com/bug?extid=8fbc17b525ad726548b8
compiler: gcc (GCC) 10.1.0-syz 20200507
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=163c9fc9900000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13026bae900000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+8fbc17...@syzkaller.appspotmail.com

audit: type=1400 audit(1599438077.700:8): avc: denied { execmem } for pid=6360 comm="syz-executor959" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=process permissive=1
=====================================
WARNING: bad unlock balance detected!
4.14.196-syzkaller #0 Not tainted
-------------------------------------
wpw/1904 is trying to release lock (console_lock) at:
[<ffffffff8348237f>] do_con_write+0xb2f/0x19b0 drivers/tty/vt/vt.c:2459
but there are no more locks to release!

other info that might help us debug this:
5 locks held by wpw/1904:
#0: (&tty->ldisc_sem){++++}, at: [<ffffffff8343db22>] tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:284
#1: (&tty->atomic_write_lock){+.+.}, at: [<ffffffff8342607d>] tty_write_lock drivers/tty/tty_io.c:885 [inline]
#1: (&tty->atomic_write_lock){+.+.}, at: [<ffffffff8342607d>] do_tty_write drivers/tty/tty_io.c:908 [inline]
#1: (&tty->atomic_write_lock){+.+.}, at: [<ffffffff8342607d>] tty_write+0x22d/0x740 drivers/tty/tty_io.c:1043
#2: ((null)){....}, at: [<0077770000000000>] 0x77770000000000
#3: ((null)){....}, at: [<0077000000000000>] 0x77000000000000
#4: (css_set_lock){..-.}, at: [<0770777000770077>] 0x770777000770077

stack backtrace:
CPU: 0 PID: 1904 Comm: wpw Not tainted 4.14.196-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+0x1b2/0x283 lib/dump_stack.c:58
print_unlock_imbalance_bug include/trace/events/lock.h:58 [inline]
__lock_release kernel/locking/lockdep.c:3769 [inline]
lock_release.cold+0x70/0xbf kernel/locking/lockdep.c:4017
__up_console_sem+0x1e/0x1b0 kernel/printk/printk.c:242
console_unlock+0x531/0xf20 kernel/printk/printk.c:2419
do_con_write+0xb2f/0x19b0 drivers/tty/vt/vt.c:2459
con_write+0x21/0xa0 drivers/tty/vt/vt.c:2805
process_output_block drivers/tty/n_tty.c:595 [inline]
n_tty_write+0x352/0xda0 drivers/tty/n_tty.c:2333
do_tty_write drivers/tty/tty_io.c:959 [inline]
tty_write+0x410/0x740 drivers/tty/tty_io.c:1043
__vfs_write+0xe4/0x630 fs/read_write.c:480
__kernel_write+0xf5/0x330 fs/read_write.c:501
write_pipe_buf+0x143/0x1c0 fs/splice.c:797
splice_from_pipe_feed fs/splice.c:502 [inline]
__splice_from_pipe+0x326/0x7a0 fs/splice.c:626
splice_from_pipe fs/splice.c:661 [inline]
default_file_splice_write+0xc5/0x150 fs/splice.c:809
do_splice_from fs/splice.c:851 [inline]
direct_splice_actor+0x115/0x160 fs/splice.c:1018
splice_direct_to_actor+0x27c/0x730 fs/splice.c:973
do_splice_direct+0x164/0x210 fs/splice.c:1061
do_sendfile+0x47f/0xb30 fs/read_write.c:1441
SYSC_sendfile64 fs/read_write.c:1502 [inline]
SyS_sendfile64+0xff/0x110 fs/read_write.c:1488
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x46/0xbb
RIP: 0033:0x446ac9
RSP: 002b:00007fb296788d18 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00000000006dbc58 RCX: 0000000000446ac9
RDX: 0000000000000000 RSI: 0000000000000005 RDI: 0000000000000004
RBP: 00000000006dbc50 R08: 65732f636f72702f R09: 65732f636f72702f
R10: 0800000080004103 R11: 0000000000000246 R12: 00000000006dbc5c
R13: 00007fb296788d20 R14: 00007fb296788d20 R15: 20c49ba5e353f7cf
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] PREEMPT SMP KASAN
Modules linked in:
CPU: 0 PID: 1904 Comm: wpw Not tainted 4.14.196-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
task: ffff8880001283c0 task.stack: ffff888000130000
RIP: 0010:update_curr+0x26/0x670 kernel/sched/fair.c:830
RSP: 0018:ffff8880aea07ce0 EFLAGS: 00010082
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 1ffffffff0d5428f
RDX: 0000000000000ee7 RSI: ffff888000128440 RDI: 0000000000007738
RBP: 0000000000007700 R08: ffff88821fff7018 R09: ffff88821fff700f
R10: ffff88821fff7017 R11: 0000003471fce0a4 R12: 0000000000007700
R13: ffff888000128590 R14: ffffffff879d2d60 R15: ffff888000128440
FS: 00007fb296789700(0000) GS:ffff8880aea00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000004c1c33 CR3: 000000000003f000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
entity_tick kernel/sched/fair.c:4016 [inline]
task_tick_fair+0x5f5/0x1130 kernel/sched/fair.c:9063
scheduler_tick+0xf6/0x2d0 kernel/sched/core.c:3033
update_process_times+0x40/0xa0 kernel/time/timer.c:1596
tick_sched_handle+0x7d/0x150 kernel/time/tick-sched.c:165
tick_sched_timer+0x92/0x200 kernel/time/tick-sched.c:1223
__run_hrtimer kernel/time/hrtimer.c:1223 [inline]
__hrtimer_run_queues+0x30b/0xc80 kernel/time/hrtimer.c:1287
hrtimer_interrupt+0x1e6/0x5e0 kernel/time/hrtimer.c:1321
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1075 [inline]
smp_apic_timer_interrupt+0x117/0x5e0 arch/x86/kernel/apic/apic.c:1100
apic_timer_interrupt+0x93/0xa0 arch/x86/entry/entry_64.S:793
</IRQ>
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:779 [inline]
RIP: 0010:console_unlock+0xb73/0xf20 kernel/printk/printk.c:2430
RSP: 0018:ffff888000137490 EFLAGS: 00000202 ORIG_RAX: ffffffffffffff10
RAX: ffff8880001283c0 RBX: 00000000000005ab RCX: 1ffffffff1027c6c
RDX: 0000000007700077 RSI: 0000000000000002 RDI: 0000000000000202
RBP: 00000000000005ab R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: ffff8880001283c0 R12: ffff8880aa4c0980
R13: 0000000000000066 R14: dffffc0000000000 R15: 00000000000005ab
do_con_write+0xb2f/0x19b0 drivers/tty/vt/vt.c:2459
con_write+0x21/0xa0 drivers/tty/vt/vt.c:2805
process_output_block drivers/tty/n_tty.c:595 [inline]
n_tty_write+0x352/0xda0 drivers/tty/n_tty.c:2333
do_tty_write drivers/tty/tty_io.c:959 [inline]
tty_write+0x410/0x740 drivers/tty/tty_io.c:1043
__vfs_write+0xe4/0x630 fs/read_write.c:480
__kernel_write+0xf5/0x330 fs/read_write.c:501
write_pipe_buf+0x143/0x1c0 fs/splice.c:797
splice_from_pipe_feed fs/splice.c:502 [inline]
__splice_from_pipe+0x326/0x7a0 fs/splice.c:626
splice_from_pipe fs/splice.c:661 [inline]
default_file_splice_write+0xc5/0x150 fs/splice.c:809
do_splice_from fs/splice.c:851 [inline]
direct_splice_actor+0x115/0x160 fs/splice.c:1018
splice_direct_to_actor+0x27c/0x730 fs/splice.c:973
do_splice_direct+0x164/0x210 fs/splice.c:1061
do_sendfile+0x47f/0xb30 fs/read_write.c:1441
SYSC_sendfile64 fs/read_write.c:1502 [inline]
SyS_sendfile64+0xff/0x110 fs/read_write.c:1488
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x46/0xbb
RIP: 0033:0x446ac9
RSP: 002b:00007fb296788d18 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00000000006dbc58 RCX: 0000000000446ac9
RDX: 0000000000000000 RSI: 0000000000000005 RDI: 0000000000000004
RBP: 00000000006dbc50 R08: 65732f636f72702f R09: 65732f636f72702f
R10: 0800000080004103 R11: 0000000000000246 R12: 00000000006dbc5c
R13: 00007fb296788d20 R14: 00007fb296788d20 R15: 20c49ba5e353f7cf
Code: 00 00 00 00 00 48 b8 00 00 00 00 00 fc ff df 41 57 41 56 41 55 41 54 55 48 89 fd 48 83 c7 38 48 89 fa 53 48 c1 ea 03 48 83 ec 10 <80> 3c 02 00 0f 85 50 05 00 00 48 8d bd c8 00 00 00 48 8b 5d 38
RIP: update_curr+0x26/0x670 kernel/sched/fair.c:830 RSP: ffff8880aea07ce0
---[ end trace 01d0e9215eeed6c1 ]---


---
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 syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches
Reply all
Reply to author
Forward
0 new messages