Check both sec and usec values to see if MAC address was changed

wpa_s->last_mac_addr_change.sec might be zero in the special case of UML
testing with time travel since it would be possible to complete the test
case steps within one second of the system start.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2022-12-18 12:21:54 +02:00
parent bdbb6e0035
commit 681856c355

View file

@ -2246,7 +2246,8 @@ int wpas_update_random_addr(struct wpa_supplicant *wpa_s, int style,
if (os_memcmp(wpa_s->own_addr, ssid->mac_value, if (os_memcmp(wpa_s->own_addr, ssid->mac_value,
ETH_ALEN) == 0) ETH_ALEN) == 0)
return 0; return 0;
} else if (wpa_s->last_mac_addr_change.sec != 0 && } else if ((wpa_s->last_mac_addr_change.sec != 0 ||
wpa_s->last_mac_addr_change.usec != 0) &&
!os_reltime_expired( !os_reltime_expired(
&now, &now,
&wpa_s->last_mac_addr_change, &wpa_s->last_mac_addr_change,