|
@@ -159,6 +159,21 @@ void offchannel_send_action_tx_status(
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ /* Accept report only if the contents of the frame matches */
|
|
|
+ if (data_len - wpabuf_len(wpa_s->pending_action_tx) != 24 ||
|
|
|
+ os_memcmp(data + 24, wpabuf_head(wpa_s->pending_action_tx),
|
|
|
+ wpabuf_len(wpa_s->pending_action_tx)) != 0) {
|
|
|
+ wpa_printf(MSG_DEBUG, "Off-channel: Ignore Action TX status - "
|
|
|
+ "mismatching contents with pending frame");
|
|
|
+ wpa_hexdump(MSG_MSGDUMP, "TX status frame data",
|
|
|
+ data, data_len);
|
|
|
+ wpa_hexdump_buf(MSG_MSGDUMP, "Pending TX frame",
|
|
|
+ wpa_s->pending_action_tx);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ wpa_printf(MSG_DEBUG, "Off-channel: Delete matching pending action frame");
|
|
|
+
|
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
|
wpa_s->pending_action_tx = NULL;
|
|
|
|