created | 2022-03-28T05:13:31Z |
---|---|
begin | 2022-03-21T19:46:56Z |
end | 2022-03-21T23:37:09Z |
path | src/sys |
commits | 1 |
date | 2022-03-21T23:37:09Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/netinet/in_pcb.h | log | diff | annotate |
src/sys/netinet/udp_usrreq.c | log | diff | annotate | |
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@ |