mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-02-21 19:43:03 -05:00
Commit e6dd8196e5daf39e4204ef8ecd26dd50fdca6040 ('Work around Linux packet socket regression') closed the workaround socket on the first received EAPOL frame from the main packet socket. This can result in closing the socket in cases where the kernel does not really work in the expected way during the following initial association since reauthentication/rekeying using EAPOL frames happens while operstate is not dormant and as such, the frames can get delivered through the main packet socket. Fix this by closing the workaround socket only in case the first EAPOL frame is received through the main packet socket. This case happens while the interface is in dormant state and as such, is more likely to show the more restricted case of kernel functionality. In order to avoid processing the received EAPOL frames twice, verify a checksum of the frame contents when receiving frames alternatively from the main packet socket and the workaround socket. Signed-off-by: Jouni Malinen <j@w1.fi>