assert "rt->rt_ifa->ifa_ifp != NULL" failed in route.c

1 view
Skip to first unread message

syzbot

unread,
Sep 28, 2019, 12:51:09 AM9/28/19
to syzkaller-o...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: 81b7b661 fix gary zukav's "acceptance without proof" quote..
git tree: openbsd
console output: https://syzkaller.appspot.com/x/log.txt?x=16845ca3600000
kernel config: https://syzkaller.appspot.com/x/.config?x=26ca0a9c07f16a3a
dashboard link: https://syzkaller.appspot.com/bug?extid=2346d807c54da41d6ead

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+2346d8...@syzkaller.appspotmail.com

panic: kernel diagnostic assertion "rt->rt_ifa->ifa_ifp != NULL" failed:
file "/syzkaller/managers/multicore/kernel/sys/net/route.c", line 848
Stopped at db_enter+0x18: addq $0x8,%rsp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
136653 90889 0 0 0 0 syz-executor.0
*204525 90889 0 0 0x4000000 1K syz-executor.0
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
panic() at panic+0x15c sys/kern/subr_prf.c:207
__assert(ffffffff822085b2,ffffffff821d2c2a,350,ffffffff821aaad0) at
__assert+0x2b sys/kern/subr_prf.c:154
rtrequest(b,ffff800023995a88,83,ffff800023995b28,0) at rtrequest+0xbd2
sys/net/route.c:951
rt_clone(ffff800023995b98,fffffd806f6cc080,0) at rt_clone+0x78
sys/net/route.c:266
rtalloc_mpath(fffffd806f6cc080,0,0) at rtalloc_mpath+0xba rt_match
sys/net/route.c:244 [inline]
rtalloc_mpath(fffffd806f6cc080,0,0) at rtalloc_mpath+0xba
sys/net/route.c:359
in_pcbselsrc(ffff800023995c70,fffffd806646a520,fffffd806f6cc000) at
in_pcbselsrc+0x219 sys/netinet/in_pcb.c:934
in_pcbconnect(fffffd806f6cc000,fffffd806646a500) at in_pcbconnect+0x107
sys/netinet/in_pcb.c:492
udp_usrreq(fffffd80664c8608,4,0,fffffd806646a500,0,ffff800020ace2a0) at
udp_usrreq+0x560
sys_connect(ffff800020ace2a0,ffff800023995df8,ffff800023995e40) at
sys_connect+0x3df sys/kern/uipc_syscalls.c:388
syscall(ffff800023995ec0) at syscall+0x4a4 mi_syscall
sys/sys/syscall_mi.h:92 [inline]
syscall(ffff800023995ec0) at syscall+0x4a4 sys/arch/amd64/amd64/trap.c:555
Xsyscall(6,0,fffffffffffffed2,0,3,ad07f07b010) at Xsyscall+0x128
end of kernel
end trace frame: 0xad353de08d0, count: 3
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb{1}>
ddb{1}> set $lines = 0
ddb{1}> set $maxwidth = 0
ddb{1}> show panic
kernel diagnostic assertion "rt->rt_ifa->ifa_ifp != NULL" failed:
file "/syzkaller/managers/multicore/kernel/sys/net/route.c", line 848
ddb{1}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
panic() at panic+0x15c sys/kern/subr_prf.c:207
__assert(ffffffff822085b2,ffffffff821d2c2a,350,ffffffff821aaad0) at
__assert+0x2b sys/kern/subr_prf.c:154
rtrequest(b,ffff800023995a88,83,ffff800023995b28,0) at rtrequest+0xbd2
sys/net/route.c:951
rt_clone(ffff800023995b98,fffffd806f6cc080,0) at rt_clone+0x78
sys/net/route.c:266
rtalloc_mpath(fffffd806f6cc080,0,0) at rtalloc_mpath+0xba rt_match
sys/net/route.c:244 [inline]
rtalloc_mpath(fffffd806f6cc080,0,0) at rtalloc_mpath+0xba
sys/net/route.c:359
in_pcbselsrc(ffff800023995c70,fffffd806646a520,fffffd806f6cc000) at
in_pcbselsrc+0x219 sys/netinet/in_pcb.c:934
in_pcbconnect(fffffd806f6cc000,fffffd806646a500) at in_pcbconnect+0x107
sys/netinet/in_pcb.c:492
udp_usrreq(fffffd80664c8608,4,0,fffffd806646a500,0,ffff800020ace2a0) at
udp_usrreq+0x560
sys_connect(ffff800020ace2a0,ffff800023995df8,ffff800023995e40) at
sys_connect+0x3df sys/kern/uipc_syscalls.c:388
syscall(ffff800023995ec0) at syscall+0x4a4 mi_syscall
sys/sys/syscall_mi.h:92 [inline]
syscall(ffff800023995ec0) at syscall+0x4a4 sys/arch/amd64/amd64/trap.c:555
Xsyscall(6,0,fffffffffffffed2,0,3,ad07f07b010) at Xsyscall+0x128
end of kernel
end trace frame: 0xad353de08d0, count: -12
ddb{1}> show registers
rdi 0xffffffff810d08e7 db_enter+0x17
rsi 0x4671 __ALIGN_SIZE+0x3671
rbp 0xffff8000239958a0
rbx 0xffff800023995950
rdx 0x4672 __ALIGN_SIZE+0x3672
rcx 0xffff800023bbc000
rax 0xffff800023bbc000
r8 0xffffffff8154309f kprintf+0x16f
r9 0x1
r10 0x25
r11 0x178bbe8f450c1e1d
r12 0x3000000008
r13 0xffff8000239958b0
r14 0x100
r15 0x1
rip 0xffffffff810d08e8 db_enter+0x18
cs 0x8
rflags 0x246
rsp 0xffff800023995890
ss 0x10
db_enter+0x18: addq $0x8,%rsp
ddb{1}> show proc
PROC (syz-executor.0) pid=204525 stat=onproc
flags process=0 proc=4000000<THREAD>
pri=79, usrpri=79, nice=20
forw=0xffffffffffffffff, list=0xffff800020acfb50,0xffff800020ace528
process=0xffff800020adce00 user=0xffff800023990000,
vmspace=0xfffffd807f00a730
estcpu=36, cpticks=2, pctcpu=0.0
user=0, sys=1, intr=0
ddb{1}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
90889 136653 95145 0 7 0 syz-executor.0
*90889 204525 95145 0 7 0x4000000 syz-executor.0
90889 505676 95145 0 2 0x4000080 syz-executor.0
21123 292554 4079 0 3 0x80 nanosleep syz-executor.1
21123 461843 4079 0 3 0x4000080 fsleep syz-executor.1
21123 701 4079 0 3 0x4000080 fsleep syz-executor.1
4079 75357 21374 0 3 0x82 nanosleep syz-executor.1
95145 58426 21374 0 3 0x82 nanosleep syz-executor.0
14253 269047 1 0 3 0x100083 ttyin getty
9073 308225 0 0 3 0x14200 acct acct
82508 29585 0 0 3 0x14200 bored sosplice
21374 260437 69818 0 3 0x82 kqread syz-fuzzer
21374 505698 69818 0 3 0x4000082 nanosleep syz-fuzzer
21374 274521 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 108920 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 499268 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 138942 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 322728 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 29310 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 188883 69818 0 3 0x4000082 thrsleep syz-fuzzer
21374 407237 69818 0 3 0x4000082 thrsleep syz-fuzzer
69818 7480 95205 0 3 0x10008a pause ksh
95205 413201 36120 0 3 0x92 select sshd
36120 457467 1 0 3 0x80 select sshd
393 300503 72387 74 3 0x100092 bpf pflogd
72387 50208 1 0 3 0x80 netio pflogd
28230 343830 45332 73 3 0x100090 kqread syslogd
45332 278707 1 0 3 0x100082 netio syslogd
64920 457808 1 77 3 0x100090 poll dhclient
25591 127402 1 0 3 0x80 poll dhclient
97237 228280 0 0 2 0x14200 zerothread
54395 448154 0 0 3 0x14200 aiodoned aiodoned
91468 398635 0 0 3 0x14200 syncer update
20977 107564 0 0 3 0x14200 cleaner cleaner
92342 213937 0 0 3 0x14200 reaper reaper
86806 60733 0 0 3 0x14200 pgdaemon pagedaemon
74911 214975 0 0 3 0x14200 bored crynlk
87853 459738 0 0 3 0x14200 bored crypto
12671 523501 0 0 3 0x40014200 acpi0 acpi0
34657 218559 0 0 3 0x40014200 idle1
86570 380489 0 0 3 0x14200 bored softnet
30392 414140 0 0 3 0x14200 bored systqmp
73017 411199 0 0 3 0x14200 bored systq
34520 464590 0 0 3 0x40014200 bored softclock
72240 294957 0 0 3 0x40014200 idle0
57115 224552 0 0 3 0x14200 bored smr
1 361260 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{1}> show all locks
Process 90889 (syz-executor.0) thread 0xffff800020ace2a0 (204525)
exclusive rwlock netlock r = 0 (0xffffffff824d88c8)
#0 witness_lock+0x52e sys/kern/subr_witness.c:1163
#1 solock+0x5a sys/kern/uipc_socket2.c:282
#2 sys_connect+0x6b sys/kern/uipc_syscalls.c:362
#3 syscall+0x4a4 mi_syscall sys/sys/syscall_mi.h:92 [inline]
#3 syscall+0x4a4 sys/arch/amd64/amd64/trap.c:555
#4 Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 1 (0xffffffff8263a6d8)
#0 witness_lock+0x52e sys/kern/subr_witness.c:1163
#1 syscall+0x400 mi_syscall sys/sys/syscall_mi.h:83 [inline]
#1 syscall+0x400 sys/arch/amd64/amd64/trap.c:555
#2 Xsyscall+0x128
ddb{1}> show malloc
Type InUse MemUse HighUse Limit Requests Type Lim Kern Lim
devbuf 9598 6456K 7076K 78643K 14967 0 0
pcb 13 10K 12K 78643K 514 0 0
rtable 106 13K 15K 78643K 3214 0 0
ifaddr 85 17K 18K 78643K 1235 0 0
counters 39 33K 33K 78643K 39 0 0
ioctlops 0 0K 4K 78643K 1557 0 0
iov 0 0K 16K 78643K 696 0 0
mount 1 1K 1K 78643K 1 0 0
vnodes 1215 76K 77K 78643K 3560 0 0
UFS quota 1 32K 32K 78643K 1 0 0
UFS mount 5 36K 36K 78643K 5 0 0
shm 2 1K 5K 78643K 86 0 0
VM map 2 1K 1K 78643K 12 0 0
sem 12 0K 1K 78643K 1558 0 0
dirhash 12 2K 2K 78643K 12 0 0
ACPI 1808 196K 290K 78643K 12765 0 0
file desc 6 17K 25K 78643K 3401 0 0
sigio 0 0K 0K 78643K 31 0 0
proc 62 63K 83K 78643K 979 0 0
subproc 32 2K 2K 78643K 187 0 0
NFS srvsock 1 0K 0K 78643K 1 0 0
NFS daemon 1 16K 16K 78643K 1 0 0
ip_moptions 0 0K 0K 78643K 1041 0 0
in_multi 24 1K 2K 78643K 1144 0 0
ether_multi 1 0K 0K 78643K 14 0 0
mrt 0 0K 0K 78643K 9 0 0
ISOFS mount 1 32K 32K 78643K 1 0 0
MSDOSFS mount 1 16K 16K 78643K 1 0 0
ttys 108 477K 477K 78643K 108 0 0
exec 0 0K 1K 78643K 510 0 0
pagedep 1 8K 8K 78643K 1 0 0
inodedep 1 32K 32K 78643K 1 0 0
newblk 1 0K 0K 78643K 1 0 0
VM swap 7 26K 26K 78643K 7 0 0
UVM amap 136 24K 33K 78643K 11484 0 0
UVM aobj 130 4K 4K 78643K 136 0 0
memdesc 1 4K 4K 78643K 1 0 0
crypto data 1 1K 1K 78643K 1 0 0
ip6_options 0 0K 0K 78643K 1677 0 0
NDP 21 0K 1K 78643K 273 0 0
temp 235 3565K 3640K 78643K 48558 0 0
kqueue 0 0K 0K 78643K 28 0 0
SYN cache 2 16K 16K 78643K 2 0 0
ddb{1}> show all pools
Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg
Idle
arp 64 36 0 31 1 0 1 1 0
8 0
plcache 128 20 0 0 1 0 1 1 0
8 0
rtpcb 80 132 0 130 1 0 1 1 0
8 0
rtentry 112 1218 0 1181 2 0 2 2 0
8 0
unpcb 120 1935 0 1922 9 8 1 2 0
8 0
syncache 264 9 0 9 4 4 0 1 0
8 0
tcpqe 32 6133 0 6133 1 1 0 1 0
8 0
tcpcb 544 3483 0 3479 18 17 1 12 0
8 0
inpcb 280 8020 0 8011 12 10 2 9 0
8 1
rttmr 72 4 0 3 1 0 1 1 0
8 0
nd6 48 568 0 566 2 1 1 1 0
8 0
ppxss 1128 38 0 38 8 7 1 1 0
8 1
pffrag 232 4 0 4 3 3 0 1 0
482 0
pffrnode 88 4 0 4 3 3 0 1 0
8 0
pffrent 40 8 0 8 3 3 0 1 0
8 0
pfosfp 40 846 0 423 5 0 5 5 0
8 0
pfosfpen 112 1428 0 714 21 0 21 21 0
8 0
pfstitem 24 116 0 92 1 0 1 1 0
8 0
pfstkey 112 117 0 93 2 0 2 2 0
8 0
pfstate 328 117 0 93 4 2 2 4 0
8 0
pfrule 1360 21 0 16 2 1 1 2 0
8 0
art_heap8 4096 1 0 0 1 0 1 1 0
8 0
art_heap4 256 10217 0 10014 25 6 19 19 0
8 2
art_table 32 10218 0 10014 5 2 3 3 0
8 0
art_node 16 1207 0 1173 1 0 1 1 0
8 0
sysvmsgpl 40 12 0 4 1 0 1 1 0
8 0
semupl 112 2 0 2 1 1 0 1 0
8 0
semapl 112 1556 0 1546 1 0 1 1 0
8 0
shmpl 112 134 0 6 4 0 4 4 0
8 0
dirhash 1024 17 0 0 3 0 3 3 0
8 0
dino1pl 128 6334 0 4932 46 0 46 46 0
8 0
ffsino 272 6334 0 4932 95 0 95 95 0
8 0
nchpl 144 10930 0 9312 61 0 61 61 0
8 0
uvmvnodes 72 5926 0 0 108 0 108 108 0
8 0
vnodes 208 5926 0 0 312 0 312 312 0
8 0
namei 1024 42572 0 42572 3 2 1 1 0
8 1
percpumem 16 30 0 0 1 0 1 1 0
8 0
vmpool 552 10 0 10 4 3 1 1 0
8 1
scsiplug 64 4 0 4 2 2 0 1 0
8 0
scxspl 192 30226 0 30226 22 19 3 7 0
8 3
plimitpl 152 150 0 142 1 0 1 1 0
8 0
sigapl 432 3575 0 3559 3 1 2 3 0
8 0
futexpl 56 72581 0 72579 1 0 1 1 0
8 0
knotepl 112 422 0 403 1 0 1 1 0
8 0
kqueuepl 104 746 0 744 4 3 1 4 0
8 0
pipepl 112 2098 0 2079 8 7 1 2 0
8 0
fdescpl 488 3576 0 3559 3 0 3 3 0
8 0
filepl 152 32887 0 32777 36 30 6 13 0
8 1
lockfpl 104 710 0 709 1 0 1 1 0
8 0
lockfspl 48 245 0 244 1 0 1 1 0
8 0
sessionpl 112 28 0 17 1 0 1 1 0
8 0
pgrppl 48 48 0 37 1 0 1 1 0
8 0
ucredpl 96 10317 0 10308 1 0 1 1 0
8 0
zombiepl 144 3559 0 3559 3 2 1 1 0
8 1
processpl 896 3593 0 3559 4 0 4 4 0
8 0
procpl 632 10243 0 10196 6 1 5 5 0
8 0
srpgc 64 14 0 14 5 5 0 1 0
8 0
sosppl 128 14 0 14 5 5 0 1 0
8 0
sockpl 384 10100 0 10076 40 34 6 14 0
8 3
mcl64k 65536 259 0 0 33 15 18 33 0
8 1
mcl16k 16384 21 0 0 3 1 2 3 0
8 0
mcl12k 12288 17 0 0 2 0 2 2 0
8 0
mcl9k 9216 25 0 0 2 0 2 2 0
8 0
mcl8k 8192 21 0 0 3 1 2 3 0
8 0
mcl4k 4096 17 0 0 3 0 3 3 0
8 0
mcl2k2 2112 3 0 0 1 0 1 1 0
8 0
mcl2k 2048 165 0 0 17 0 17 17 0
8 0
mtagpl 80 22 0 0 1 0 1 1 0
8 0
mbufpl 256 549 0 0 21 0 21 21 0
8 0
bufpl 256 12625 0 5577 441 0 441 441 0
8 0
anonpl 16 320702 0 304404 128 46 82 86 0 124
10
amapchunkpl 152 20619 0 20467 32 19 13 14 0
158 5
amappl16 192 16744 0 15808 100 45 55 59 0
8 8
amappl14 176 201 0 198 2 1 1 1 0
8 0
amappl13 168 1 0 1 1 1 0 1 0
8 0
amappl12 160 622 0 616 2 1 1 1 0
8 0
amappl11 152 934 0 917 1 0 1 1 0
8 0
amappl10 144 1097 0 1094 1 0 1 1 0
8 0
amappl9 136 976 0 970 1 0 1 1 0
8 0
amappl8 128 549 0 509 3 1 2 2 0
8 0
amappl7 120 1156 0 1148 1 0 1 1 0
8 0
amappl6 112 965 0 952 1 0 1 1 0
8 0
amappl5 104 837 0 819 1 0 1 1 0
8 0
amappl4 96 3359 0 3327 1 0 1 1 0
8 0
amappl3 88 840 0 833 1 0 1 1 0
8 0
amappl2 80 27331 0 27251 4 2 2 3 0
8 0
amappl1 72 82261 0 81785 26 16 10 20 0
8 0
amappl 80 10658 0 10608 2 0 2 2 0
84 0
dma4096 4096 1 0 1 1 1 0 1 0
8 0
dma256 256 6 0 6 1 1 0 1 0
8 0
dma128 128 253 0 253 1 1 0 1 0
8 0
dma64 64 6 0 6 1 1 0 1 0
8 0
dma32 32 7 0 7 1 1 0 1 0
8 0
dma16 16 17 0 17 1 1 0 1 0
8 0
aobjpl 64 135 0 6 3 0 3 3 0
8 0
uaddrrnd 24 3586 0 3559 1 0 1 1 0
8 0
uaddrbest 32 2 0 0 1 0 1 1 0
8 0
uaddr 24 3586 0 3559 1 0 1 1 0
8 0
vmmpekpl 168 28500 0 28461 2 0 2 2 0
8 0
vmmpepl 168 437443 0 435222 294 166 128 128 0 357
29
vmsppl 368 3575 0 3559 2 0 2 2 0
8 0
pdppl 4096 7179 0 7138 7 1 6 6 0
8 0
pvpl 32 991237 0 971362 307 112 195 198 0 265
29
pmappl 232 3585 0 3569 4 2 2 2 0
8 1
extentpl 40 41 0 26 1 0 1 1 0
8 0
phpool 112 679 0 46 19 0 19 19 0
8 0


---
This bug 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 bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

syzbot

unread,
Jan 6, 2020, 7:10:06 PM1/6/20
to syzkaller-o...@googlegroups.com
Auto-closing this bug as obsolete.
Crashes did not happen for a while, no reproducer and no activity.
Reply all
Reply to author
Forward
0 new messages