CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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: [email protected]
OK sashan@