HomeFreeBSD

*/{wpa_supplicant*,hostapd*}: Fix wpa 100% CPU when USB wlan NIC removed

Description

*/{wpa_supplicant*,hostapd*}: Fix wpa 100% CPU when USB wlan NIC removed

hostapd calls pcap_next(3) to read the next packet off the wlan interface.
pcap_next() returns a pointer to the packet header but does not indicate
success or failure. Unfortunately this results in an infinite loop (100%
CPU) when the wlan device disappears, i.e. when a USB wlan device is
manually removed or a USB error results in the device removal. However
pcap_next_ex(3) does return success or failure. To resolve this we use
pcap_next_ex(), forcing hostapd to exit when the error is encountered.

An error message is printed to syslog or stderr when debugging (-d flag)
is enabled. Unfortunately wpa_printf() only works when debugging is enabled.

PR: 253608
Reported by: Damjan Jovanovic <damjan.jov@gmail.com>,

		bz (privately)

MFH: 2022Q2

(cherry picked from commit c586ac04eb662dea00ab81b226fa3e41a5110b21)

Details

Provenance
cyAuthored on Apr 14 2022, 3:42 PM
Parents
R11:012a880e9e8a: net/hostapd29: fix PKGBASE collision
Branches
Unknown
Tags
Unknown