mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-25 17:59:25 +01:00
p2p: Fix Device Address updates from Probe Requests
p2p_peer_update_existing may be called with a scan_bss struct built from a Probe Request frame so it can't access bss->p2p_probe_resp_info even if peer->bss was built from a Probe Response. Check the source frame type of the scan_bss struct before updating the Device Address. This fixes one timing issue that would make the autotest fail often.
This commit is contained in:
parent
6f7743426b
commit
ce94013bae
10
src/p2p.c
10
src/p2p.c
@ -3655,11 +3655,15 @@ static bool p2p_peer_update_existing(struct scan_bss *bss,
|
|||||||
* Some property changes may need to be notified here.
|
* Some property changes may need to be notified here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (peer->device_addr == peer->bss->addr)
|
if (bss->source_frame == SCAN_BSS_PROBE_RESP)
|
||||||
peer->device_addr = bss->addr;
|
|
||||||
else
|
|
||||||
peer->device_addr =
|
peer->device_addr =
|
||||||
bss->p2p_probe_resp_info->device_info.device_addr;
|
bss->p2p_probe_resp_info->device_info.device_addr;
|
||||||
|
else if (bss->source_frame == SCAN_BSS_PROBE_REQ && !l_memeqzero(
|
||||||
|
bss->p2p_probe_req_info->device_info.device_addr, 6))
|
||||||
|
peer->device_addr =
|
||||||
|
bss->p2p_probe_req_info->device_info.device_addr;
|
||||||
|
else
|
||||||
|
peer->device_addr = bss->addr;
|
||||||
|
|
||||||
scan_bss_free(peer->bss);
|
scan_bss_free(peer->bss);
|
||||||
peer->bss = bss;
|
peer->bss = bss;
|
||||||
|
Loading…
Reference in New Issue
Block a user