====================================================== [ INFO: possible circular locking dependency detected ] 4.9.141+ #1 Not tainted ------------------------------------------------------- syz-executor.3/31852 is trying to acquire lock: (&p->lock){+.+.+.}, at: [] seq_read+0xdd/0x12d0 fs/seq_file.c:178 but task is already holding lock: ([ 1163.510236] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.4'. &pipe->mutex/1){+.+.+.}, at: [] pipe_lock_nested fs/pipe.c:66 [inline] &pipe->mutex/1){+.+.+.}, at: [] pipe_lock+0x5e/0x70 fs/pipe.c:74 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xc0/0x900 kernel/locking/mutex.c:621 __pipe_lock fs/pipe.c:87 [inline] fifo_open+0x15c/0x9e0 fs/pipe.c:921 do_dentry_open+0x3ef/0xc90 fs/open.c:766 vfs_open+0x11c/0x210 fs/open.c:879 do_last fs/namei.c:3410 [inline] path_openat+0x542/0x2790 fs/namei.c:3534 do_filp_open+0x197/0x270 fs/namei.c:3568 do_open_execat+0x10f/0x640 fs/exec.c:844 do_execveat_common.isra.14+0x687/0x1ed0 fs/exec.c:1723 do_execve fs/exec.c:1829 [inline] SYSC_execve fs/exec.c:1910 [inline] SyS_execve+0x42/0x50 fs/exec.c:1905 do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 entry_SYSCALL_64_after_swapgs+0x5d/0xdb lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_killable_nested+0xcc/0x9f0 kernel/locking/mutex.c:641 do_io_accounting+0x1fb/0x7e0 fs/proc/base.c:2690 proc_tgid_io_accounting+0x22/0x30 fs/proc/base.c:2739 proc_single_show+0xfd/0x170 fs/proc/base.c:785 seq_read+0x4b6/0x12d0 fs/seq_file.c:240 do_loop_readv_writev.part.1+0xd5/0x280 fs/read_write.c:718 do_loop_readv_writev fs/read_write.c:707 [inline] do_readv_writev+0x56e/0x7b0 fs/read_write.c:873 vfs_readv+0x84/0xc0 fs/read_write.c:897 kernel_readv fs/splice.c:363 [inline] default_file_splice_read+0x451/0x7f0 fs/splice.c:435 do_splice_to+0x10c/0x170 fs/splice.c:899 splice_direct_to_actor+0x23f/0x7e0 fs/splice.c:971 do_splice_direct+0x1a3/0x270 fs/splice.c:1080 do_sendfile+0x4f0/0xc30 fs/read_write.c:1393 SYSC_sendfile64 fs/read_write.c:1454 [inline] SyS_sendfile64+0x144/0x160 fs/read_write.c:1440 do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 entry_SYSCALL_64_after_swapgs+0x5d/0xdb check_prev_add kernel/locking/lockdep.c:1828 [inline] check_prevs_add kernel/locking/lockdep.c:1938 [inline] validate_chain kernel/locking/lockdep.c:2265 [inline] __lock_acquire+0x3189/0x4a10 kernel/locking/lockdep.c:3345 lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xc0/0x900 kernel/locking/mutex.c:621 seq_read+0xdd/0x12d0 fs/seq_file.c:178 proc_reg_read+0xfd/0x180 fs/proc/inode.c:203 do_loop_readv_writev.part.1+0xd5/0x280 fs/read_write.c:718 do_loop_readv_writev fs/read_write.c:707 [inline] do_readv_writev+0x56e/0x7b0 fs/read_write.c:873 vfs_readv+0x84/0xc0 fs/read_write.c:897 kernel_readv fs/splice.c:363 [inline] default_file_splice_read+0x451/0x7f0 fs/splice.c:435 do_splice_to+0x10c/0x170 fs/splice.c:899 do_splice fs/splice.c:1192 [inline] SYSC_splice fs/splice.c:1416 [inline] SyS_splice+0x10d2/0x14d0 fs/splice.c:1399 do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 entry_SYSCALL_64_after_swapgs+0x5d/0xdb other info that might help us debug this: Chain exists of: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&pipe->mutex/1); lock(&sig->cred_guard_mutex); lock(&pipe->mutex/1); lock(&p->lock); *** DEADLOCK *** 1 lock held by syz-executor.3/31852: #0: (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock_nested fs/pipe.c:66 [inline] #0: (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock+0x5e/0x70 fs/pipe.c:74 stack backtrace: CPU: 0 PID: 31852 Comm: syz-executor.3 Not tainted 4.9.141+ #1 ffff88015588f278 ffffffff81b42e79 ffffffff83ca2fd0 ffffffff83ca9f30 ffffffff83ca4fe0 ffff88019df288d0 ffff88019df28000 ffff88015588f2c0 ffffffff813fee40 0000000000000001 000000009df288b0 0000000000000001 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] print_circular_bug.cold.36+0x2f7/0x432 kernel/locking/lockdep.c:1202 [] check_prev_add kernel/locking/lockdep.c:1828 [inline] [] check_prevs_add kernel/locking/lockdep.c:1938 [inline] [] validate_chain kernel/locking/lockdep.c:2265 [inline] [] __lock_acquire+0x3189/0x4a10 kernel/locking/lockdep.c:3345 [] lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 [] __mutex_lock_common kernel/locking/mutex.c:521 [inline] [] mutex_lock_nested+0xc0/0x900 kernel/locking/mutex.c:621 [] seq_read+0xdd/0x12d0 fs/seq_file.c:178 [] proc_reg_read+0xfd/0x180 fs/proc/inode.c:203 [] do_loop_readv_writev.part.1+0xd5/0x280 fs/read_write.c:718 [] do_loop_readv_writev fs/read_write.c:707 [inline] [] do_readv_writev+0x56e/0x7b0 fs/read_write.c:873 [] vfs_readv+0x84/0xc0 fs/read_write.c:897 [] kernel_readv fs/splice.c:363 [inline] [] default_file_splice_read+0x451/0x7f0 fs/splice.c:435 [] do_splice_to+0x10c/0x170 fs/splice.c:899 [] do_splice fs/splice.c:1192 [inline] [] SYSC_splice fs/splice.c:1416 [inline] [] SyS_splice+0x10d2/0x14d0 fs/splice.c:1399 [] do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 [] entry_SYSCALL_64_after_swapgs+0x5d/0xdb netlink: 8 bytes leftover after parsing attributes in process `syz-executor.0'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor.0'. binder: 31886:31887 got transaction with invalid offset (0, min 0 max 88) or object. binder: 31886:31887 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 31893:31899 got transaction with invalid offset (0, min 0 max 88) or object. netlink: 8 bytes leftover after parsing attributes in process `syz-executor.0'. binder: 31893:31899 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 31916:31917 got transaction with invalid offset (0, min 0 max 88) or object. binder: 31916:31917 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 qtaguid: iface_stat: create(lo): no inet dev binder: 31936:31942 got transaction with invalid offset (0, min 0 max 88) or object. binder: 31936:31942 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 qtaguid: iface_stat: create6(lo): no inet dev binder: 31946:31947 got transaction with invalid offset (0, min 0 max 88) or object. binder: 31946:31947 transaction failed 29201/-22, size 88-4120 line 3199 IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready qtaguid: iface_stat: create6(lo): no inet dev binder: undelivered TRANSACTION_ERROR: 29201 binder: 31961:31962 got transaction with invalid offset (0, min 0 max 88) or object. qtaguid: iface_stat: create(lo): no inet dev qtaguid: iface_stat: create6(lo): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready qtaguid: iface_stat: create6(lo): no inet dev binder: 31961:31962 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 31970:31971 got transaction with invalid offset (0, min 0 max 88) or object. binder: 31970:31971 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 qtaguid: iface_stat: create(lo): no inet dev qtaguid: iface_stat: create6(lo): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready qtaguid: iface_stat: create6(lo): no inet dev ip6_tunnel: l0 xmit: Local address not yet configured! binder: 32014:32017 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 selinux_nlmsg_perm: 4093 callbacks suppressed SELinux: unrecognized netlink message: protocol=0 nlmsg_type=12336 sclass=netlink_route_socket pig=32010 comm=syz-executor.3 qtaguid: iface_stat: create6(lo): no inet dev qtaguid: iface_stat: create(lo): no inet dev qtaguid: iface_stat: create6(lo): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready qtaguid: iface_stat: create6(lo): no inet dev binder: 32027:32030 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 qtaguid: iface_stat: create6(lo): no inet dev qtaguid: iface_stat: create(lo): no inet dev qtaguid: iface_stat: create6(lo): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready qtaguid: iface_stat: create6(lo): no inet dev binder: 32032:32035 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 binder_alloc: 32041: binder_alloc_buf, no vma binder: 32041:32042 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 binder_alloc: 32046: binder_alloc_buf, no vma binder: 32046:32047 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=12336 sclass=netlink_route_socket pig=32045 comm=syz-executor.3 binder_alloc: 32057: binder_alloc_buf, no vma binder: 32057:32060 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 nla_parse: 27 callbacks suppressed netlink: 8 bytes leftover after parsing attributes in process `syz-executor.0'. netlink: 8 bytes leftover after parsing attributes in process `syz-executor.1'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor.1'. netlink: 8 bytes leftover after parsing attributes in process `syz-executor.1'. netlink: 4 bytes leftover after parsing attributes in process `syz-executor.1'. binder: 32122:32124 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32122:32124 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32125:32126 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32125:32126 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32127:32128 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32127:32128 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32132:32133 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32132:32133 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32136:32138 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32136:32138 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32142:32143 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32142:32143 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 netlink: 8 bytes leftover after parsing attributes in process `syz-executor.0'. netlink: 8 bytes leftover after parsing attributes in process `syz-executor.1'. binder: 32158:32161 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32158:32161 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32168:32170 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32168:32170 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32173:32174 got transaction with invalid offset (0, min 0 max 88) or object. binder: 32173:32174 transaction failed 29201/-22, size 88-4120 line 3199 binder: undelivered TRANSACTION_ERROR: 29201 binder_alloc: 32179: binder_alloc_buf, no vma binder: 32179:32180 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 netlink: 4 bytes leftover after parsing attributes in process `syz-executor.1'. netlink: 8 bytes leftover after parsing attributes in process `syz-executor.0'. binder_alloc: 32189: binder_alloc_buf, no vma binder: 32189:32191 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 binder_alloc: 32198: binder_alloc_buf, no vma netlink: 8 bytes leftover after parsing attributes in process `syz-executor.1'. binder: 32198:32201 transaction failed 29189/-3, size 88-4120 line 3136 binder: undelivered TRANSACTION_ERROR: 29189 binder: 32233:32237 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 binder: 32252:32254 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 binder: 32271:32273 transaction failed 29189/-22, size 88-4120 line 3013 binder: undelivered TRANSACTION_ERROR: 29189 binder: 32333:32341 ioctl c0306201 0 returned -14 binder: 32352:32354 ioctl c0306201 0 returned -14 binder: 32369:32372 ioctl c0306201 0 returned -14 binder: 32414:32417 got transaction with invalid offsets ptr binder: 32414:32417 transaction failed 29201/-14, size 88-4120 line 3164 binder: undelivered TRANSACTION_ERROR: 29201 binder: 32436:32443 got transaction with invalid data ptr binder: 32436:32443 transaction failed 29201/-14, size 88-4120 line 3155 binder: undelivered TRANSACTION_ERROR: 29201