071e3bf116
When we receive FST Setup Request when session already exists, the following validations take place: 1. we drop the frame if needed according to MAC comparison 2. we drop the frame if the session is "not pending", i.e., if FST Setup Response was already exchanged (sent or received). There are two issues with the above: 1. MAC comparison is relevant only before the Setup Response exchange. In other words, Setup Request should not be dropped due to MAC comparison after Setup Response has been exchanged. 2. Receiving Setup Request after Setup Response exchange most likely means that FST state machine is out of sync with the peer. Dropping the Setup Request will not help solve this situation. The fix is: 1. do MAC comparison only if session is "pending", i.e., Setup Response was not yet exchanged. 2. In case Setup Response was already exchanged, reset our session and handle the Setup Request as if it arrived when session doesn't exist. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> |
||
---|---|---|
.. | ||
fst.c | ||
fst.h | ||
fst_ctrl_aux.c | ||
fst_ctrl_aux.h | ||
fst_ctrl_defs.h | ||
fst_ctrl_iface.c | ||
fst_ctrl_iface.h | ||
fst_defs.h | ||
fst_group.c | ||
fst_group.h | ||
fst_iface.c | ||
fst_iface.h | ||
fst_internal.h | ||
fst_session.c | ||
fst_session.h | ||
Makefile |