CVSROOT: /cvs Module name: src Changes by: bl...@cvs.openbsd.org 2022/03/21 17:37:09
Modified files: sys/netinet : in_pcb.h udp_usrreq.c Log message: For multicast and broadcast packets udp_input() traverses the loop of all UDP PCBs. From there it calls udp_sbappend() while holding the UDP table mutex. This ends in sorwakeup() where we finally grab the kernel lock while holding a mutex. Witness detects this misuse. Use the same solution as for PCB notify. Collect the affected PCBs in a temporary list. The list is protected by exclusive net lock. Reported-by: syzbot+7596cb96fb9f3c9d6...@syzkaller.appspotmail.com OK sashan@