]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Use ether_addr_equal() to compare whether two MAC addresses are equal
authorJouni Malinen <j@w1.fi>
Sat, 13 Jan 2024 21:15:36 +0000 (23:15 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 13 Jan 2024 21:47:21 +0000 (23:47 +0200)
This was done with spatch using the following semantic patch and minor
manual edits to clean up coding style and avoid compiler warnings in
driver_wext.c:

@@
expression a,b;
@@
- os_memcmp(a, b, ETH_ALEN) == 0
+ ether_addr_equal(a, b)

@@
expression a,b;
@@
- os_memcmp(a, b, ETH_ALEN) != 0
+ !ether_addr_equal(a, b)

@@
expression a,b;
@@
- !os_memcmp(a, b, ETH_ALEN)
+ ether_addr_equal(a, b)

Signed-off-by: Jouni Malinen <j@w1.fi>
85 files changed:
hostapd/ctrl_iface.c
src/ap/airtime_policy.c
src/ap/ap_config.c
src/ap/ap_list.c
src/ap/beacon.c
src/ap/dpp_hostapd.c
src/ap/drv_callbacks.c
src/ap/fils_hlp.c
src/ap/gas_query_ap.c
src/ap/ieee802_11.c
src/ap/ieee802_11_auth.c
src/ap/ieee802_11_eht.c
src/ap/neighbor_db.c
src/ap/pmksa_cache_auth.c
src/ap/preauth_auth.c
src/ap/sta_info.c
src/ap/wpa_auth.c
src/ap/wpa_auth_ft.c
src/ap/wpa_auth_glue.c
src/ap/wps_hostapd.c
src/common/dpp_tcp.c
src/common/gas_server.c
src/common/ptksa_cache.c
src/drivers/driver_atheros.c
src/drivers/driver_ndis.c
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211_event.c
src/drivers/driver_nl80211_scan.c
src/drivers/driver_roboswitch.c
src/drivers/driver_wext.c
src/fst/fst_group.c
src/fst/fst_iface.c
src/fst/fst_session.c
src/l2_packet/l2_packet_linux.c
src/p2p/p2p.c
src/p2p/p2p_dev_disc.c
src/p2p/p2p_go_neg.c
src/p2p/p2p_group.c
src/p2p/p2p_invitation.c
src/p2p/p2p_pd.c
src/p2p/p2p_sd.c
src/pae/ieee802_1x_kay.c
src/pasn/pasn_initiator.c
src/radius/radius_client.c
src/rsn_supp/pmksa_cache.c
src/rsn_supp/preauth.c
src/rsn_supp/tdls.c
src/rsn_supp/wpa.c
src/rsn_supp/wpa_ft.c
src/wps/wps.c
src/wps/wps_enrollee.c
src/wps/wps_er.c
src/wps/wps_registrar.c
wlantest/bss.c
wlantest/ctrl.c
wlantest/inject.c
wlantest/process.c
wlantest/rx_data.c
wlantest/rx_eapol.c
wlantest/rx_mgmt.c
wlantest/sta.c
wlantest/tkip.c
wpa_supplicant/bgscan_learn.c
wpa_supplicant/bss.c
wpa_supplicant/bssid_ignore.c
wpa_supplicant/config.c
wpa_supplicant/ctrl_iface.c
wpa_supplicant/dpp_supplicant.c
wpa_supplicant/events.c
wpa_supplicant/gas_query.c
wpa_supplicant/hs20_supplicant.c
wpa_supplicant/ibss_rsn.c
wpa_supplicant/interworking.c
wpa_supplicant/mesh_mpm.c
wpa_supplicant/offchannel.c
wpa_supplicant/p2p_supplicant.c
wpa_supplicant/pasn_supplicant.c
wpa_supplicant/rrm.c
wpa_supplicant/scan.c
wpa_supplicant/sme.c
wpa_supplicant/wmm_ac.c
wpa_supplicant/wnm_sta.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpas_glue.c
wpa_supplicant/wps_supplicant.c

index f9a78651cab5ce6010946c5f106067aee502cf2c..273e7bd7ef24b4da96352244c9eb12fe67467d88 100644 (file)
@@ -1431,7 +1431,7 @@ hostapd_ctrl_iface_kick_mismatch_psk_sta_iter(struct hostapd_data *hapd,
                pmk_match = PMK_LEN == pmk_len &&
                        os_memcmp(psk->psk, pmk, pmk_len) == 0;
                sta_match = psk->group == 0 &&
-                       os_memcmp(sta->addr, psk->addr, ETH_ALEN) == 0;
+                       ether_addr_equal(sta->addr, psk->addr);
                bss_match = psk->group == 1;
 
                if (pmk_match && (sta_match || bss_match))
index abe817c5b01585c052f0949414ed6fde933ea131..68443115f16bce2e31f6602f635a55d841a67648 100644 (file)
@@ -232,7 +232,7 @@ static int get_weight_for_sta(struct hostapd_data *hapd, const u8 *sta)
        struct airtime_sta_weight *wt;
 
        wt = hapd->conf->airtime_weight_list;
-       while (wt && os_memcmp(wt->addr, sta, ETH_ALEN) != 0)
+       while (wt && !ether_addr_equal(wt->addr, sta))
                wt = wt->next;
 
        return wt ? wt->weight : hapd->conf->airtime_weight;
index 89fd12d1d99d2e63130b4901636e25949104005b..040f39e7fa081c76ae4448346ed0666df2f28531 100644 (file)
@@ -1135,10 +1135,9 @@ const u8 * hostapd_get_psk(const struct hostapd_bss_config *conf,
        for (psk = conf->ssid.wpa_psk; psk != NULL; psk = psk->next) {
                if (next_ok &&
                    (psk->group ||
-                    (addr && os_memcmp(psk->addr, addr, ETH_ALEN) == 0) ||
+                    (addr && ether_addr_equal(psk->addr, addr)) ||
                     (!addr && p2p_dev_addr &&
-                     os_memcmp(psk->p2p_dev_addr, p2p_dev_addr, ETH_ALEN) ==
-                     0))) {
+                     ether_addr_equal(psk->p2p_dev_addr, p2p_dev_addr)))) {
                        if (vlan_id)
                                *vlan_id = psk->vlan_id;
                        return psk->psk;
@@ -1758,7 +1757,7 @@ void hostapd_remove_acl_mac(struct mac_acl_entry **acl, int *num,
        int i = 0;
 
        while (i < *num) {
-               if (os_memcmp((*acl)[i].addr, addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal((*acl)[i].addr, addr)) {
                        os_remove_in_array(*acl, *num, sizeof(**acl), i);
                        (*num)--;
                } else {
index 20be7f8f881de89b7d3d0d41e5d7926a1fe5025e..13facab3085de718ba602c6ceea2e4d62b89aa90 100644 (file)
@@ -55,7 +55,7 @@ static struct ap_info * ap_get_ap(struct hostapd_iface *iface, const u8 *ap)
        struct ap_info *s;
 
        s = iface->ap_hash[STA_HASH(ap)];
-       while (s != NULL && os_memcmp(s->addr, ap, ETH_ALEN) != 0)
+       while (s != NULL && !ether_addr_equal(s->addr, ap))
                s = s->hnext;
        return s;
 }
@@ -100,13 +100,13 @@ static void ap_ap_hash_del(struct hostapd_iface *iface, struct ap_info *ap)
 
        s = iface->ap_hash[STA_HASH(ap->addr)];
        if (s == NULL) return;
-       if (os_memcmp(s->addr, ap->addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(s->addr, ap->addr)) {
                iface->ap_hash[STA_HASH(ap->addr)] = s->hnext;
                return;
        }
 
        while (s->hnext != NULL &&
-              os_memcmp(s->hnext->addr, ap->addr, ETH_ALEN) != 0)
+              !ether_addr_equal(s->hnext->addr, ap->addr))
                s = s->hnext;
        if (s->hnext != NULL)
                s->hnext = s->hnext->hnext;
index 89e3608744f0340376867418e7d5dffd31912f73..9b08f65a783bad6eb7f32e522aa7cc24e4b7ba65 100644 (file)
@@ -1147,7 +1147,7 @@ static struct hostapd_sta_info * sta_track_get(struct hostapd_iface *iface,
        struct hostapd_sta_info *info;
 
        dl_list_for_each(info, &iface->sta_seen, struct hostapd_sta_info, list)
-               if (os_memcmp(addr, info->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(addr, info->addr))
                        return info;
 
        return NULL;
@@ -1499,7 +1499,7 @@ void handle_probe_req(struct hostapd_data *hapd,
                else
                        hessid = elems.interworking + 1 + 2;
                if (!is_broadcast_ether_addr(hessid) &&
-                   os_memcmp(hessid, hapd->conf->hessid, ETH_ALEN) != 0) {
+                   !ether_addr_equal(hessid, hapd->conf->hessid)) {
                        wpa_printf(MSG_MSGDUMP, "Probe Request from " MACSTR
                                   " for mismatching HESSID " MACSTR
                                   " ignored",
index 1fee2d6a8afd095c08381f18583350f5fcb0cc95..c4baa801402b771b49d635c7c3f3cc20bf15ffd2 100644 (file)
@@ -1413,7 +1413,7 @@ static void hostapd_dpp_rx_auth_resp(struct hostapd_data *hapd, const u8 *src,
        }
 
        if (!is_zero_ether_addr(auth->peer_mac_addr) &&
-           os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -1463,7 +1463,7 @@ static void hostapd_dpp_rx_auth_conf(struct hostapd_data *hapd, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -1572,7 +1572,7 @@ static void hostapd_dpp_rx_conf_result(struct hostapd_data *hapd, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -1858,7 +1858,7 @@ hostapd_dpp_rx_reconfig_auth_resp(struct hostapd_data *hapd, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -3073,7 +3073,7 @@ hostapd_dpp_gas_req_handler(struct hostapd_data *hapd, const u8 *sa,
 
        wpa_printf(MSG_DEBUG, "DPP: GAS request from " MACSTR, MAC2STR(sa));
        if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
-           os_memcmp(sa, auth->peer_mac_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sa, auth->peer_mac_addr)) {
 #ifdef CONFIG_DPP2
                if (dpp_relay_rx_gas_req(hapd->iface->interfaces->dpp, sa, data,
                                     data_len) == 0) {
index 9878a79df95a6760f1574d99b7a34035969cbc86..15baa7bbe6d463103144bb7c261541239b6ab29e 100644 (file)
@@ -283,7 +283,7 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
 
        if (is_multicast_ether_addr(addr) ||
            is_zero_ether_addr(addr) ||
-           os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) {
+           ether_addr_equal(addr, hapd->own_addr)) {
                /* Do not process any frames with unexpected/invalid SA so that
                 * we do not add any state for unexpected STA addresses or end
                 * up sending out frames to unexpected destination. */
@@ -1636,7 +1636,7 @@ static struct hostapd_data * get_hapd_bssid(struct hostapd_iface *iface,
                return HAPD_BROADCAST;
 
        for (i = 0; i < iface->num_bss; i++) {
-               if (os_memcmp(bssid, iface->bss[i]->own_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(bssid, iface->bss[i]->own_addr))
                        return iface->bss[i];
        }
 
@@ -1690,7 +1690,7 @@ static int hostapd_mgmt_rx(struct hostapd_data *hapd, struct rx_mgmt *rx_mgmt)
 
 #ifdef CONFIG_IEEE80211BE
        if (hapd->conf->mld_ap &&
-           os_memcmp(hapd->mld_addr, bssid, ETH_ALEN) == 0)
+           ether_addr_equal(hapd->mld_addr, bssid))
                is_mld = true;
 #endif /* CONFIG_IEEE80211BE */
 
@@ -1762,8 +1762,7 @@ static void hostapd_mgmt_tx_cb(struct hostapd_data *hapd, const u8 *buf,
                hapd = tmp_hapd;
 #ifdef CONFIG_IEEE80211BE
        } else if (hapd->conf->mld_ap &&
-                  os_memcmp(hapd->mld_addr, get_hdr_bssid(hdr, len),
-                            ETH_ALEN) == 0) {
+                  ether_addr_equal(hapd->mld_addr, get_hdr_bssid(hdr, len))) {
                /* AP MLD address match - use hapd pointer as-is */
 #endif /* CONFIG_IEEE80211BE */
        } else {
index d64fb8c402ac8eaf7d870188db0ca20855dc2e57..a34b5ba1df62dd17f2d0adfbb55ffc33c54dedef 100644 (file)
@@ -546,7 +546,7 @@ static int fils_process_hlp_req(struct hostapd_data *hapd,
                   " src=" MACSTR " len=%u)",
                   MAC2STR(sta->addr), MAC2STR(pos), MAC2STR(pos + ETH_ALEN),
                   (unsigned int) len);
-       if (os_memcmp(sta->addr, pos + ETH_ALEN, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sta->addr, pos + ETH_ALEN)) {
                wpa_printf(MSG_DEBUG,
                           "FILS: Ignore HLP request with unexpected source address"
                           MACSTR, MAC2STR(pos + ETH_ALEN));
index 3d944072daafe542e23fe8c9be839e8244b35c16..a471c793c41352d496c0d58d02c25f29d445e138 100644 (file)
@@ -185,7 +185,7 @@ gas_query_get_pending(struct gas_query_ap *gas, const u8 *addr, u8 dialog_token)
 {
        struct gas_query_pending *q;
        dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
-               if (os_memcmp(q->addr, addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(q->addr, addr) &&
                    q->dialog_token == dialog_token)
                        return q;
        }
@@ -223,7 +223,7 @@ void gas_query_ap_tx_status(struct gas_query_ap *gas, const u8 *dst,
        wpa_printf(MSG_DEBUG, "GAS: TX status: dst=" MACSTR
                   " ok=%d query=%p dialog_token=%u dur=%d ms",
                   MAC2STR(dst), ok, query, query->dialog_token, dur);
-       if (os_memcmp(dst, query->addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(dst, query->addr)) {
                wpa_printf(MSG_DEBUG, "GAS: TX status for unexpected destination");
                return;
        }
@@ -618,7 +618,7 @@ static int gas_query_dialog_token_available(struct gas_query_ap *gas,
 {
        struct gas_query_pending *q;
        dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
-               if (os_memcmp(dst, q->addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(dst, q->addr) &&
                    dialog_token == q->dialog_token)
                        return 0;
        }
index c448ce0a92e681f3cc7ac3bfe347ad392694df98..2c57eb6352b6d14cd059d2b2e79e3d9c2ffd4219 100644 (file)
@@ -556,7 +556,7 @@ const char * sae_get_password(struct hostapd_data *hapd,
        for (pw = hapd->conf->sae_passwords; pw; pw = pw->next) {
                if (!is_broadcast_ether_addr(pw->peer_addr) &&
                    (!sta ||
-                    os_memcmp(pw->peer_addr, sta->addr, ETH_ALEN) != 0))
+                    !ether_addr_equal(pw->peer_addr, sta->addr)))
                        continue;
                if ((rx_id && !pw->identifier) || (!rx_id && pw->identifier))
                        continue;
@@ -1671,7 +1671,7 @@ static void auth_sae_queue(struct hostapd_data *hapd,
        dl_list_for_each(q2, &hapd->sae_commit_queue,
                         struct hostapd_sae_commit_queue, list) {
                mgmt2 = (const struct ieee80211_mgmt *) q2->msg;
-               if (os_memcmp(mgmt->sa, mgmt2->sa, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(mgmt->sa, mgmt2->sa) &&
                    mgmt->u.auth.auth_transaction ==
                    mgmt2->u.auth.auth_transaction) {
                        wpa_printf(MSG_DEBUG,
@@ -1702,7 +1702,7 @@ static int auth_sae_queued_addr(struct hostapd_data *hapd, const u8 *addr)
        dl_list_for_each(q, &hapd->sae_commit_queue,
                         struct hostapd_sae_commit_queue, list) {
                mgmt = (const struct ieee80211_mgmt *) q->msg;
-               if (os_memcmp(addr, mgmt->sa, ETH_ALEN) == 0)
+               if (ether_addr_equal(addr, mgmt->sa))
                        return 1;
        }
 
@@ -2620,7 +2620,7 @@ static int pasn_set_keys_from_cache(struct hostapd_data *hapd,
                return -1;
        }
 
-       if (os_memcmp(entry->own_addr, own_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(entry->own_addr, own_addr)) {
                wpa_printf(MSG_DEBUG,
                           "PASN: own addr " MACSTR " and PTKSA entry own addr "
                           MACSTR " differ",
@@ -2916,7 +2916,7 @@ static void handle_auth(struct hostapd_data *hapd,
                goto fail;
        }
 
-       if (os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, hapd->own_addr)) {
                wpa_printf(MSG_INFO, "Station " MACSTR " not allowed to authenticate",
                           MAC2STR(sa));
                resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
@@ -2924,8 +2924,8 @@ static void handle_auth(struct hostapd_data *hapd,
        }
 
        if (mld_sta &&
-           (os_memcmp(sa, hapd->own_addr, ETH_ALEN) == 0 ||
-            os_memcmp(sa, hapd->mld_addr, ETH_ALEN) == 0)) {
+           (ether_addr_equal(sa, hapd->own_addr) ||
+            ether_addr_equal(sa, hapd->mld_addr))) {
                wpa_printf(MSG_INFO,
                           "Station " MACSTR " not allowed to authenticate",
                           MAC2STR(sa));
@@ -6141,7 +6141,7 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
 
        if (is_multicast_ether_addr(mgmt->sa) ||
            is_zero_ether_addr(mgmt->sa) ||
-           os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
+           ether_addr_equal(mgmt->sa, hapd->own_addr)) {
                /* Do not process any frames with unexpected/invalid SA so that
                 * we do not add any state for unexpected STA addresses or end
                 * up sending out frames to unexpected destination. */
@@ -6167,9 +6167,9 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
 #endif /* CONFIG_MESH */
 #ifdef CONFIG_IEEE80211BE
            !(hapd->conf->mld_ap &&
-             os_memcmp(hapd->mld_addr, mgmt->bssid, ETH_ALEN) == 0) &&
+             ether_addr_equal(hapd->mld_addr, mgmt->bssid)) &&
 #endif /* CONFIG_IEEE80211BE */
-           os_memcmp(mgmt->bssid, hapd->own_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(mgmt->bssid, hapd->own_addr)) {
                wpa_printf(MSG_INFO, "MGMT: BSSID=" MACSTR " not our address",
                           MAC2STR(mgmt->bssid));
                return 0;
@@ -6190,9 +6190,9 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
             stype != WLAN_FC_STYPE_ACTION) &&
 #ifdef CONFIG_IEEE80211BE
            !(hapd->conf->mld_ap &&
-             os_memcmp(hapd->mld_addr, mgmt->bssid, ETH_ALEN) == 0) &&
+             ether_addr_equal(hapd->mld_addr, mgmt->bssid)) &&
 #endif /* CONFIG_IEEE80211BE */
-           os_memcmp(mgmt->da, hapd->own_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(mgmt->da, hapd->own_addr)) {
                hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211,
                               HOSTAPD_LEVEL_DEBUG,
                               "MGMT: DA=" MACSTR " not our address",
@@ -6929,7 +6929,7 @@ void ieee802_11_rx_from_unknown(struct hostapd_data *hapd, const u8 *src,
        wpa_printf(MSG_DEBUG, "Data/PS-poll frame from not associated STA "
                   MACSTR, MAC2STR(src));
        if (is_multicast_ether_addr(src) || is_zero_ether_addr(src) ||
-           os_memcmp(src, hapd->own_addr, ETH_ALEN) == 0) {
+           ether_addr_equal(src, hapd->own_addr)) {
                /* Broadcast bit set in SA or unexpected SA?! Ignore the frame
                 * silently. */
                return;
index 4277d82cbaf901b57ac29df3bba412921f8c848e..e723ae74ba7fc3a89e0daf58067892458f0b3acf 100644 (file)
@@ -84,7 +84,7 @@ static int hostapd_acl_cache_get(struct hostapd_data *hapd, const u8 *addr,
        os_get_reltime(&now);
 
        for (entry = hapd->acl_cache; entry; entry = entry->next) {
-               if (os_memcmp(entry->addr, addr, ETH_ALEN) != 0)
+               if (!ether_addr_equal(entry->addr, addr))
                        continue;
 
                if (os_reltime_expired(&now, &entry->timestamp,
@@ -281,7 +281,7 @@ int hostapd_allowed_address(struct hostapd_data *hapd, const u8 *addr,
 
                query = hapd->acl_queries;
                while (query) {
-                       if (os_memcmp(query->addr, addr, ETH_ALEN) == 0) {
+                       if (ether_addr_equal(query->addr, addr)) {
                                /* pending query in RADIUS retransmit queue;
                                 * do not generate a new one */
                                return HOSTAPD_ACL_PENDING;
index d03416b3d593391dcdef95618b72470dab82858a..f1cfd18a995f7a4befcbd4c5da569272e3431b94 100644 (file)
@@ -1240,8 +1240,8 @@ u16 hostapd_process_ml_assoc_req(struct hostapd_data *hapd,
                   info->common_info.eml_capa, info->common_info.mld_capa);
 
        /* Check the MLD MAC Address */
-       if (os_memcmp(info->common_info.mld_addr, common_info->mld_addr,
-                     ETH_ALEN) != 0) {
+       if (!ether_addr_equal(info->common_info.mld_addr,
+                             common_info->mld_addr)) {
                wpa_printf(MSG_DEBUG,
                           "MLD: MLD address mismatch between authentication ("
                           MACSTR ") and association (" MACSTR ")",
index 5b276e8da7851553a536f29e583ced8132eab609..2a25ae20ee061f5e547fc6f5d1691a965476926e 100644 (file)
@@ -24,7 +24,7 @@ hostapd_neighbor_get(struct hostapd_data *hapd, const u8 *bssid,
 
        dl_list_for_each(nr, &hapd->nr_db, struct hostapd_neighbor_entry,
                         list) {
-               if (os_memcmp(bssid, nr->bssid, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(bssid, nr->bssid) &&
                    (!ssid ||
                     (ssid->ssid_len == nr->ssid.ssid_len &&
                      os_memcmp(ssid->ssid, nr->ssid.ssid,
index ee4232fd7d112e1b77cb954cf1abbde030242765..2fce8383d975d90e7f4607a64b3b08f5897c4c0b 100644 (file)
@@ -487,14 +487,14 @@ pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa,
                for (entry = pmksa->pmkid[PMKID_HASH(pmkid)]; entry;
                     entry = entry->hnext) {
                        if ((spa == NULL ||
-                            os_memcmp(entry->spa, spa, ETH_ALEN) == 0) &&
+                            ether_addr_equal(entry->spa, spa)) &&
                            os_memcmp(entry->pmkid, pmkid, PMKID_LEN) == 0)
                                return entry;
                }
        } else {
                for (entry = pmksa->pmksa; entry; entry = entry->next) {
                        if (spa == NULL ||
-                           os_memcmp(entry->spa, spa, ETH_ALEN) == 0)
+                           ether_addr_equal(entry->spa, spa))
                                return entry;
                }
        }
@@ -521,7 +521,7 @@ struct rsn_pmksa_cache_entry * pmksa_cache_get_okc(
        u8 new_pmkid[PMKID_LEN];
 
        for (entry = pmksa->pmksa; entry; entry = entry->next) {
-               if (os_memcmp(entry->spa, spa, ETH_ALEN) != 0)
+               if (!ether_addr_equal(entry->spa, spa))
                        continue;
                if (wpa_key_mgmt_sae(entry->akmp) ||
                    wpa_key_mgmt_fils(entry->akmp)) {
@@ -575,7 +575,7 @@ static int das_attr_match(struct rsn_pmksa_cache_entry *entry,
        int match = 0;
 
        if (attr->sta_addr) {
-               if (os_memcmp(attr->sta_addr, entry->spa, ETH_ALEN) != 0)
+               if (!ether_addr_equal(attr->sta_addr, entry->spa))
                        return 0;
                match++;
        }
@@ -717,7 +717,7 @@ int pmksa_cache_auth_list_mesh(struct rsn_pmksa_cache *pmksa, const u8 *addr,
         * <BSSID> <PMKID> <PMK> <expiration in seconds>
         */
        for (entry = pmksa->pmksa; entry; entry = entry->next) {
-               if (addr && os_memcmp(entry->spa, addr, ETH_ALEN) != 0)
+               if (addr && !ether_addr_equal(entry->spa, addr))
                        continue;
 
                ret = os_snprintf(pos, end - pos, MACSTR " ",
index 3284a10a9f9885985b8bbcf68611baa123311067..cb225c68189749020efecbdbaa2977d6b0d10232 100644 (file)
@@ -58,7 +58,7 @@ static void rsn_preauth_receive(void *ctx, const u8 *src_addr,
        ethhdr = (struct l2_ethhdr *) buf;
        hdr = (struct ieee802_1x_hdr *) (ethhdr + 1);
 
-       if (os_memcmp(ethhdr->h_dest, hapd->own_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(ethhdr->h_dest, hapd->own_addr)) {
                wpa_printf(MSG_DEBUG, "RSN: pre-auth for foreign address "
                           MACSTR, MAC2STR(ethhdr->h_dest));
                return;
index 519a8987462bb4077427cf4bc947a8f437d1e784..0da24fc41b38b1e479a697878e38c8ced2734bf6 100644 (file)
@@ -92,7 +92,7 @@ struct sta_info * ap_get_sta_p2p(struct hostapd_data *hapd, const u8 *addr)
                if (p2p_dev_addr == NULL)
                        continue;
 
-               if (os_memcmp(p2p_dev_addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(p2p_dev_addr, addr))
                        return sta;
        }
 
@@ -140,7 +140,7 @@ static void ap_sta_hash_del(struct hostapd_data *hapd, struct sta_info *sta)
        }
 
        while (s->hnext != NULL &&
-              os_memcmp(s->hnext->addr, sta->addr, ETH_ALEN) != 0)
+              !ether_addr_equal(s->hnext->addr, sta->addr))
                s = s->hnext;
        if (s->hnext != NULL)
                s->hnext = s->hnext->hnext;
@@ -1732,7 +1732,7 @@ static void ap_sta_remove_link_sta(struct hostapd_data *hapd,
                for (tmp_sta = tmp_hapd->sta_list; tmp_sta;
                     tmp_sta = tmp_sta->next) {
                        if (tmp_sta == sta ||
-                           os_memcmp(tmp_sta->addr, sta->addr, ETH_ALEN) != 0)
+                           !ether_addr_equal(tmp_sta->addr, sta->addr))
                                continue;
 
                        ap_free_sta(tmp_hapd, tmp_sta);
index 74a10a4af4d8ea6bab653dcf2620a83c2d51b0f0..74925a4fffa894f22713234ad9ffd961b10f23ff 100644 (file)
@@ -3178,7 +3178,7 @@ static int wpa_auth_validate_ml_kdes_m2(struct wpa_state_machine *sm,
 
        /* MLD MAC address must be the same */
        if (!kde->mac_addr ||
-           os_memcmp(kde->mac_addr, sm->peer_mld_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(kde->mac_addr, sm->peer_mld_addr)) {
                wpa_printf(MSG_DEBUG, "RSN: MLD: Invalid MLD address");
                return -1;
        }
@@ -3205,8 +3205,8 @@ static int wpa_auth_validate_ml_kdes_m2(struct wpa_state_machine *sm,
                        return -1;
                }
 
-               if (os_memcmp(sm->mld_links[i].peer_addr, kde->mlo_link[i] + 1,
-                             ETH_ALEN) != 0) {
+               if (!ether_addr_equal(sm->mld_links[i].peer_addr,
+                                     kde->mlo_link[i] + 1)) {
                        wpa_printf(MSG_DEBUG,
                                   "RSN: MLD: invalid MAC address=" MACSTR
                                   " expected " MACSTR " (link ID %u)",
@@ -4425,7 +4425,7 @@ static int wpa_auth_validate_ml_kdes_m4(struct wpa_state_machine *sm)
 
        /* MLD MAC address must be the same */
        if (!kde.mac_addr ||
-           os_memcmp(kde.mac_addr, sm->peer_mld_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(kde.mac_addr, sm->peer_mld_addr)) {
                wpa_printf(MSG_DEBUG,
                           "MLD: Mismatching or missing MLD address in EAPOL-Key msg 4/4");
                return -1;
index daf4cab461057b9cae5356f42a8292c37e9bb066..7744ed626979387d2bb32b2573e5c66517a91773 100644 (file)
@@ -1427,7 +1427,7 @@ static int wpa_ft_fetch_pmk_r0(struct wpa_authenticator *wpa_auth,
 
        os_get_reltime(&now);
        dl_list_for_each(r0, &cache->pmk_r0, struct wpa_ft_pmk_r0_sa, list) {
-               if (os_memcmp(r0->spa, spa, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(r0->spa, spa) &&
                    os_memcmp_const(r0->pmk_r0_name, pmk_r0_name,
                                    WPA_PMK_NAME_LEN) == 0) {
                        *r0_out = r0;
@@ -1522,7 +1522,7 @@ int wpa_ft_fetch_pmk_r1(struct wpa_authenticator *wpa_auth,
        os_get_reltime(&now);
 
        dl_list_for_each(r1, &cache->pmk_r1, struct wpa_ft_pmk_r1_sa, list) {
-               if (os_memcmp(r1->spa, spa, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(r1->spa, spa) &&
                    os_memcmp_const(r1->pmk_r1_name, pmk_r1_name,
                                    WPA_PMK_NAME_LEN) == 0) {
                        os_memcpy(pmk_r1, r1->pmk_r1, r1->pmk_r1_len);
@@ -2024,7 +2024,7 @@ static int wpa_ft_pull_pmk_r1(struct wpa_state_machine *sm,
                            sm->r0kh_id, sm->r0kh_id_len);
                return -1;
        }
-       if (os_memcmp(r0kh->addr, sm->wpa_auth->addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(r0kh->addr, sm->wpa_auth->addr)) {
                wpa_printf(MSG_DEBUG,
                           "FT: R0KH-ID points to self - no matching key available");
                return -1;
@@ -3766,7 +3766,7 @@ int wpa_ft_action_rx(struct wpa_state_machine *sm, const u8 *data, size_t len)
                   " Target AP=" MACSTR " Action=%d)",
                   MAC2STR(sta_addr), MAC2STR(target_ap), action);
 
-       if (os_memcmp(sta_addr, sm->addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sta_addr, sm->addr)) {
                wpa_printf(MSG_DEBUG, "FT: Mismatch in FT Action STA address: "
                           "STA=" MACSTR " STA-Address=" MACSTR,
                           MAC2STR(sm->addr), MAC2STR(sta_addr));
@@ -3779,7 +3779,7 @@ int wpa_ft_action_rx(struct wpa_state_machine *sm, const u8 *data, size_t len)
         * APs in the MD (if such a list were configured).
         */
        if ((target_ap[0] & 0x01) ||
-           os_memcmp(target_ap, sm->wpa_auth->addr, ETH_ALEN) == 0) {
+           ether_addr_equal(target_ap, sm->wpa_auth->addr)) {
                wpa_printf(MSG_DEBUG, "FT: Invalid Target AP in FT Action "
                           "frame");
                return -1;
@@ -4037,7 +4037,7 @@ static int wpa_ft_rrb_rx_pull(struct wpa_authenticator *wpa_auth,
                seq_ret = wpa_ft_rrb_seq_chk(r1kh->seq, src_addr, enc, enc_len,
                                             auth, auth_len, msgtype, no_defer);
        if (!no_defer && r1kh_wildcard &&
-           (!r1kh || os_memcmp(r1kh->addr, src_addr, ETH_ALEN) != 0)) {
+           (!r1kh || !ether_addr_equal(r1kh->addr, src_addr))) {
                /* wildcard: r1kh-id unknown or changed addr -> do a seq req */
                seq_ret = FT_RRB_SEQ_DEFER;
        }
@@ -4204,7 +4204,7 @@ static int wpa_ft_rrb_rx_r1(struct wpa_authenticator *wpa_auth,
                                             cb ? 0 : 1);
        }
        if (cb && r0kh_wildcard &&
-           (!r0kh || os_memcmp(r0kh->addr, src_addr, ETH_ALEN) != 0)) {
+           (!r0kh || !ether_addr_equal(r0kh->addr, src_addr))) {
                /* wildcard: r0kh-id unknown or changed addr -> do a seq req */
                seq_ret = FT_RRB_SEQ_DEFER;
        }
@@ -4358,7 +4358,7 @@ static int ft_get_sta_cb(struct wpa_state_machine *sm, void *ctx)
        struct ft_get_sta_ctx *info = ctx;
 
        if ((info->s1kh_id &&
-            os_memcmp(info->s1kh_id, sm->addr, ETH_ALEN) != 0) ||
+            !ether_addr_equal(info->s1kh_id, sm->addr)) ||
            os_memcmp(info->nonce, sm->ft_pending_pull_nonce,
                      FT_RRB_NONCE_LEN) != 0 ||
            sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
@@ -4483,7 +4483,7 @@ static int wpa_ft_rrb_rx_seq(struct wpa_authenticator *wpa_auth,
                wpa_ft_rrb_lookup_r0kh(wpa_auth, f_r0kh_id, f_r0kh_id_len,
                                       &r0kh, &r0kh_wildcard);
                if (!r0kh_wildcard &&
-                   (!r0kh || os_memcmp(r0kh->addr, src_addr, ETH_ALEN) != 0)) {
+                   (!r0kh || !ether_addr_equal(r0kh->addr, src_addr))) {
                        wpa_hexdump(MSG_DEBUG, "FT: Did not find R0KH-ID",
                                    f_r0kh_id, f_r0kh_id_len);
                        goto out;
@@ -4501,7 +4501,7 @@ static int wpa_ft_rrb_rx_seq(struct wpa_authenticator *wpa_auth,
                wpa_ft_rrb_lookup_r1kh(wpa_auth, f_r1kh_id, &r1kh,
                                       &r1kh_wildcard);
                if (!r1kh_wildcard &&
-                   (!r1kh || os_memcmp(r1kh->addr, src_addr, ETH_ALEN) != 0)) {
+                   (!r1kh || !ether_addr_equal(r1kh->addr, src_addr))) {
                        wpa_hexdump(MSG_DEBUG, "FT: Did not find R1KH-ID",
                                    f_r1kh_id, FT_R1KH_ID_LEN);
                        goto out;
@@ -4807,7 +4807,7 @@ int wpa_ft_rrb_rx(struct wpa_authenticator *wpa_auth, const u8 *src_addr,
                        return -1;
                }
 
-               if (os_memcmp(target_ap_addr, wpa_auth->addr, ETH_ALEN) != 0) {
+               if (!ether_addr_equal(target_ap_addr, wpa_auth->addr)) {
                        wpa_printf(MSG_DEBUG, "FT: Target AP address in the "
                                   "RRB Request does not match with own "
                                   "address");
@@ -4970,7 +4970,7 @@ void wpa_ft_push_pmk_r1(struct wpa_authenticator *wpa_auth, const u8 *addr)
                return;
 
        dl_list_for_each(r0, &cache->pmk_r0, struct wpa_ft_pmk_r0_sa, list) {
-               if (os_memcmp(r0->spa, addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(r0->spa, addr)) {
                        r0found = r0;
                        break;
                }
index 94b6a724758f887e24bc86dc3fe9e2fc5e3e2dde..76e8541566384435afd8c82603d0fc0136b8e112 100644 (file)
@@ -667,7 +667,7 @@ static int hostapd_wpa_auth_ft_iter(struct hostapd_iface *iface, void *ctx)
                hapd = iface->bss[j];
                if (hapd == idata->src_hapd ||
                    !hapd->wpa_auth ||
-                   os_memcmp(hapd->own_addr, idata->dst, ETH_ALEN) != 0)
+                   !ether_addr_equal(hapd->own_addr, idata->dst))
                        continue;
 
                wpa_printf(MSG_DEBUG,
@@ -857,7 +857,7 @@ static int hostapd_wpa_auth_oui_iter(struct hostapd_iface *iface, void *ctx)
                              MOBILITY_DOMAIN_ID_LEN) != 0)
                        continue; /* no matching FT SSID/mobility domain */
                if (!is_multicast_ether_addr(idata->dst_addr) &&
-                   os_memcmp(hapd->own_addr, idata->dst_addr, ETH_ALEN) != 0)
+                   !ether_addr_equal(hapd->own_addr, idata->dst_addr))
                        continue; /* destination address does not match */
 
                /* defer eth_p_oui_deliver until next eloop step as this is
@@ -1407,7 +1407,7 @@ static void hostapd_rrb_receive(void *ctx, const u8 *src_addr, const u8 *buf,
        wpa_printf(MSG_DEBUG, "FT: RRB received packet " MACSTR " -> "
                   MACSTR, MAC2STR(ethhdr->h_source), MAC2STR(ethhdr->h_dest));
        if (!is_multicast_ether_addr(ethhdr->h_dest) &&
-           os_memcmp(hapd->own_addr, ethhdr->h_dest, ETH_ALEN) != 0)
+           !ether_addr_equal(hapd->own_addr, ethhdr->h_dest))
                return;
        wpa_ft_rrb_rx(hapd->wpa_auth, ethhdr->h_source, buf + sizeof(*ethhdr),
                      len - sizeof(*ethhdr));
@@ -1423,7 +1423,7 @@ static void hostapd_rrb_oui_receive(void *ctx, const u8 *src_addr,
        wpa_printf(MSG_DEBUG, "FT: RRB received packet " MACSTR " -> "
                   MACSTR, MAC2STR(src_addr), MAC2STR(dst_addr));
        if (!is_multicast_ether_addr(dst_addr) &&
-           os_memcmp(hapd->own_addr, dst_addr, ETH_ALEN) != 0)
+           !ether_addr_equal(hapd->own_addr, dst_addr))
                return;
        wpa_ft_rrb_oui_rx(hapd->wpa_auth, src_addr, dst_addr, oui_suffix, buf,
                          len);
index aacfa337260a61c3b84c2da04ec65adccfee46e5..82d4d5fdd599f171e5d2790c33fac61ad45c5d62 100644 (file)
@@ -288,7 +288,7 @@ static int hostapd_wps_lookup_pskfile_cb(void *ctx, const u8 *mac_addr,
                        any_psk = wpa_psk->psk;
 
                if (mac_addr && !dev_psk &&
-                   os_memcmp(mac_addr, wpa_psk->addr, ETH_ALEN) == 0) {
+                   ether_addr_equal(mac_addr, wpa_psk->addr)) {
                        dev_psk = wpa_psk->psk;
                        break;
                }
index d226a8a88037b66f3af3d07e4d4b39c03a04ae02..d28a41e48de0081b62059cb9379a3011787308e6 100644 (file)
@@ -563,7 +563,7 @@ dpp_relay_match_ctrl(struct dpp_relay_controller *ctrl, const u8 *src,
        struct dpp_connection *conn;
 
        dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
-               if (os_memcmp(src, conn->mac_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(src, conn->mac_addr))
                        return conn;
                if ((type == DPP_PA_PKEX_EXCHANGE_RESP ||
                     type == DPP_PA_AUTHENTICATION_RESP) &&
@@ -661,7 +661,7 @@ dpp_relay_find_conn(struct dpp_relay_controller *ctrl, const u8 *src)
        struct dpp_connection *conn;
 
        dl_list_for_each(conn, &ctrl->conn, struct dpp_connection, list) {
-               if (os_memcmp(src, conn->mac_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(src, conn->mac_addr))
                        return conn;
        }
 
index 745a13fc026e412e8018f1f9ec621b3051e62d57..107550039fe60df9d717798dd9b7c354c0fc2b25 100644 (file)
@@ -352,7 +352,7 @@ gas_server_rx_comeback_req(struct gas_server *gas, const u8 *da, const u8 *sa,
        dl_list_for_each(response, &gas->responses, struct gas_server_response,
                         list) {
                if (response->dialog_token != dialog_token ||
-                   os_memcmp(sa, response->dst, ETH_ALEN) != 0)
+                   !ether_addr_equal(sa, response->dst))
                        continue;
                gas_server_handle_rx_comeback_req(response);
                return 0;
@@ -470,7 +470,7 @@ void gas_server_tx_status(struct gas_server *gas, const u8 *dst, const u8 *data,
        dl_list_for_each(response, &gas->responses, struct gas_server_response,
                         list) {
                if (response->dialog_token != dialog_token ||
-                   os_memcmp(dst, response->dst, ETH_ALEN) != 0)
+                   !ether_addr_equal(dst, response->dst))
                        continue;
                gas_server_handle_tx_status(response, ack);
                return;
index 3b5c0b8e5c99cc5dda228d960f420d3f08577736..c00f2887672fd52307aebd7f2c2ce5f61ad29713 100644 (file)
@@ -141,7 +141,7 @@ struct ptksa_cache_entry * ptksa_cache_get(struct ptksa_cache *ptksa,
                return NULL;
 
        dl_list_for_each(e, &ptksa->ptksa, struct ptksa_cache_entry, list) {
-               if ((!addr || os_memcmp(e->addr, addr, ETH_ALEN) == 0) &&
+               if ((!addr || ether_addr_equal(e->addr, addr)) &&
                    (cipher == WPA_CIPHER_NONE || cipher == e->cipher))
                        return e;
        }
@@ -238,7 +238,7 @@ void ptksa_cache_flush(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher)
 
        dl_list_for_each_safe(e, next, &ptksa->ptksa, struct ptksa_cache_entry,
                              list) {
-               if ((!addr || os_memcmp(e->addr, addr, ETH_ALEN) == 0) &&
+               if ((!addr || ether_addr_equal(e->addr, addr)) &&
                    (cipher == WPA_CIPHER_NONE || cipher == e->cipher)) {
                        wpa_printf(MSG_DEBUG,
                                   "Flush PTKSA cache entry for " MACSTR,
index 59f65b810bacc901cee0cb3eead55e46ed8c6706..ae7f0e535c67dc152b66096fa51ca2168707a8fb 100644 (file)
@@ -659,7 +659,7 @@ atheros_read_sta_driver_data(void *priv, struct hostap_sta_driver_data *data,
                         &stats, sizeof(stats))) {
                wpa_printf(MSG_DEBUG, "%s: Failed to fetch STA stats (addr "
                           MACSTR ")", __func__, MAC2STR(addr));
-               if (os_memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
+               if (ether_addr_equal(addr, drv->acct_mac)) {
                        os_memcpy(data, &drv->acct_data, sizeof(*data));
                        return 0;
                }
@@ -892,7 +892,7 @@ static void atheros_raw_receive(void *ctx, const u8 *src_addr, const u8 *buf,
        }
 
        if (stype == WLAN_FC_STYPE_ACTION &&
-           (os_memcmp(drv->own_addr, mgmt->bssid, ETH_ALEN) == 0 ||
+           (ether_addr_equal(drv->own_addr, mgmt->bssid) ||
             is_broadcast_ether_addr(mgmt->bssid))) {
                os_memset(&event, 0, sizeof(event));
                event.rx_mgmt.frame = buf;
@@ -901,7 +901,7 @@ static void atheros_raw_receive(void *ctx, const u8 *src_addr, const u8 *buf,
                return;
        }
 
-       if (os_memcmp(drv->own_addr, mgmt->bssid, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(drv->own_addr, mgmt->bssid)) {
                wpa_printf(MSG_DEBUG, "%s: BSSID does not match - ignore",
                           __func__);
                return;
@@ -1226,7 +1226,7 @@ atheros_new_sta(struct atheros_driver_data *drv, u8 addr[IEEE80211_ADDR_LEN])
 no_ie:
        drv_event_assoc(hapd, addr, iebuf, ielen, NULL, 0, NULL, -1, 0);
 
-       if (os_memcmp(addr, drv->acct_mac, ETH_ALEN) == 0) {
+       if (ether_addr_equal(addr, drv->acct_mac)) {
                /* Cached accounting data is not valid anymore. */
                os_memset(drv->acct_mac, 0, ETH_ALEN);
                os_memset(&drv->acct_data, 0, sizeof(drv->acct_data));
index b32e009679dcc0b76676e5e86f33cadd6f2f9a33..0351705229e4aeb9bd4b70aaebeb787d90db9379 100644 (file)
@@ -1248,7 +1248,7 @@ static int wpa_driver_ndis_add_pmkid(void *priv,
        prev = NULL;
        entry = drv->pmkid;
        while (entry) {
-               if (os_memcmp(entry->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(entry->bssid, bssid))
                        break;
                prev = entry;
                entry = entry->next;
@@ -1293,7 +1293,7 @@ static int wpa_driver_ndis_remove_pmkid(void *priv,
        entry = drv->pmkid;
        prev = NULL;
        while (entry) {
-               if (os_memcmp(entry->bssid, bssid, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(entry->bssid, bssid) &&
                    os_memcmp(entry->pmkid, pmkid, 16) == 0) {
                        if (prev)
                                prev->next = entry->next;
@@ -1434,7 +1434,7 @@ static int wpa_driver_ndis_get_associnfo(struct wpa_driver_ndis_data *drv)
        pos = (char *) &b->Bssid[0];
        for (i = 0; i < b->NumberOfItems; i++) {
                NDIS_WLAN_BSSID_EX *bss = (NDIS_WLAN_BSSID_EX *) pos;
-               if (os_memcmp(drv->bssid, bss->MacAddress, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(drv->bssid, bss->MacAddress) &&
                    bss->IELength > sizeof(NDIS_802_11_FIXED_IEs)) {
                        data.assoc_info.beacon_ies =
                                ((u8 *) bss->IEs) +
@@ -1477,7 +1477,7 @@ static void wpa_driver_ndis_poll_timeout(void *eloop_ctx, void *timeout_ctx)
                }
        } else {
                /* Connected */
-               if (os_memcmp(drv->bssid, bssid, ETH_ALEN) != 0) {
+               if (!ether_addr_equal(drv->bssid, bssid)) {
                        os_memcpy(drv->bssid, bssid, ETH_ALEN);
                        wpa_driver_ndis_get_associnfo(drv);
                        wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
index a5dea1db396b3cbdbd11a3f2af3126192cb6894d..39c9362d0a0e57e58b1118d2eb5040a1f197dc50 100644 (file)
@@ -1261,7 +1261,7 @@ static void nl80211_refresh_mac(struct wpa_driver_nl80211_data *drv,
                wpa_printf(MSG_DEBUG,
                           "nl80211: %s: failed to re-read MAC address",
                           bss->ifname);
-       } else if (bss && os_memcmp(addr, bss->addr, ETH_ALEN) != 0) {
+       } else if (bss && !ether_addr_equal(addr, bss->addr)) {
                wpa_printf(MSG_DEBUG,
                           "nl80211: Own MAC address on ifindex %d (%s) changed from "
                           MACSTR " to " MACSTR,
@@ -4162,7 +4162,7 @@ static int nl80211_get_link_freq(struct i802_bss *bss, const u8 *addr,
        size_t i;
 
        for (i = 0; i < bss->n_links; i++) {
-               if (os_memcmp(bss->links[i].addr, addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(bss->links[i].addr, addr)) {
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Use link freq=%d for address "
                                   MACSTR,
@@ -8691,7 +8691,7 @@ static int nl80211_addr_in_use(struct nl80211_global *global, const u8 *addr)
        struct wpa_driver_nl80211_data *drv;
        dl_list_for_each(drv, &global->interfaces,
                         struct wpa_driver_nl80211_data, list) {
-               if (os_memcmp(addr, drv->first_bss->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(addr, drv->first_bss->addr))
                        return 1;
        }
        return 0;
@@ -9112,7 +9112,7 @@ static int wpa_driver_nl80211_send_action(struct i802_bss *bss,
        os_memcpy(hdr->addr2, src, ETH_ALEN);
        os_memcpy(hdr->addr3, bssid, ETH_ALEN);
 
-       if (os_memcmp(bss->addr, src, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(bss->addr, src)) {
                wpa_printf(MSG_DEBUG, "nl80211: Use random TA " MACSTR,
                           MAC2STR(src));
                os_memcpy(bss->rand_addr, src, ETH_ALEN);
index a0f32cdca6b9df7fe3c075b097b56d4879c673a2..06da93617044c9c07927d4fd3cc00d839a2a1f14 100644 (file)
@@ -443,7 +443,7 @@ static void qca_nl80211_link_reconfig_event(struct wpa_driver_nl80211_data *drv,
        wpa_printf(MSG_DEBUG, "nl80211: AP MLD address " MACSTR
                   " received in link reconfig event", MAC2STR(ap_mld));
        if (!drv->sta_mlo_info.valid_links ||
-           os_memcmp(drv->sta_mlo_info.ap_mld_addr, ap_mld, ETH_ALEN) != 0) {
+           !ether_addr_equal(drv->sta_mlo_info.ap_mld_addr, ap_mld)) {
                if (drv->pending_link_reconfig_data == data) {
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Drop pending link reconfig event since AP MLD not matched even after new connect/roam event");
@@ -812,7 +812,7 @@ qca_nl80211_tid_to_link_map_event(struct wpa_driver_nl80211_data *drv,
        wpa_printf(MSG_DEBUG, "nl80211: AP MLD address " MACSTR
                   " received in TID to link mapping event", MAC2STR(ap_mld));
        if (!drv->sta_mlo_info.valid_links ||
-           os_memcmp(drv->sta_mlo_info.ap_mld_addr, ap_mld, ETH_ALEN) != 0) {
+           !ether_addr_equal(drv->sta_mlo_info.ap_mld_addr, ap_mld)) {
                if (drv->pending_t2lm_data == data) {
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Drop pending TID-to-link mapping event since AP MLD not matched even after new connect/roam event");
@@ -960,9 +960,8 @@ static void mlme_event_connect(struct wpa_driver_nl80211_data *drv,
                if (drv->ignore_next_local_disconnect) {
                        drv->ignore_next_local_disconnect = 0;
                        if (!event.assoc_reject.bssid ||
-                           (os_memcmp(event.assoc_reject.bssid,
-                                      drv->auth_attempt_bssid,
-                                      ETH_ALEN) != 0)) {
+                           !ether_addr_equal(event.assoc_reject.bssid,
+                                             drv->auth_attempt_bssid)) {
                                /*
                                 * Ignore the event that came without a BSSID or
                                 * for the old connection since this is likely
@@ -1457,9 +1456,9 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
 
                if ((drv->capa.flags & WPA_DRIVER_FLAGS_SME) &&
                    !drv->associated &&
-                   os_memcmp(bssid, drv->auth_bssid, ETH_ALEN) != 0 &&
-                   os_memcmp(bssid, drv->auth_attempt_bssid, ETH_ALEN) != 0 &&
-                   os_memcmp(bssid, drv->prev_bssid, ETH_ALEN) == 0) {
+                   !ether_addr_equal(bssid, drv->auth_bssid) &&
+                   !ether_addr_equal(bssid, drv->auth_attempt_bssid) &&
+                   ether_addr_equal(bssid, drv->prev_bssid)) {
                        /*
                         * Avoid issues with some roaming cases where
                         * disconnection event for the old AP may show up after
@@ -1468,11 +1467,10 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
                         * ignore_next_local_deauth as well, to avoid next local
                         * deauth event be wrongly ignored.
                         */
-                       if (os_memcmp(mgmt->sa, drv->first_bss->addr,
-                                     ETH_ALEN) == 0 ||
+                       if (ether_addr_equal(mgmt->sa, drv->first_bss->addr) ||
                            (!is_zero_ether_addr(drv->first_bss->prev_addr) &&
-                            os_memcmp(mgmt->sa, drv->first_bss->prev_addr,
-                                      ETH_ALEN) == 0)) {
+                            ether_addr_equal(mgmt->sa,
+                                             drv->first_bss->prev_addr))) {
                                wpa_printf(MSG_DEBUG,
                                           "nl80211: Received a locally generated deauth event. Clear ignore_next_local_deauth flag");
                                drv->ignore_next_local_deauth = 0;
@@ -1487,8 +1485,8 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
 
                if (!(drv->capa.flags & WPA_DRIVER_FLAGS_SME) &&
                    drv->connect_reassoc && drv->associated &&
-                   os_memcmp(bssid, drv->prev_bssid, ETH_ALEN) == 0 &&
-                   os_memcmp(bssid, drv->auth_attempt_bssid, ETH_ALEN) != 0) {
+                   ether_addr_equal(bssid, drv->prev_bssid) &&
+                   !ether_addr_equal(bssid, drv->auth_attempt_bssid)) {
                        /*
                         * Avoid issues with some roaming cases where
                         * disconnection event for the old AP may show up after
@@ -1504,8 +1502,8 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
                }
 
                if (drv->associated != 0 &&
-                   os_memcmp(bssid, drv->bssid, ETH_ALEN) != 0 &&
-                   os_memcmp(bssid, drv->auth_bssid, ETH_ALEN) != 0) {
+                   !ether_addr_equal(bssid, drv->bssid) &&
+                   !ether_addr_equal(bssid, drv->auth_bssid)) {
                        /*
                         * We have presumably received this deauth as a
                         * response to a clear_state_mismatch() outgoing
@@ -1527,7 +1525,7 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
 
        if (type == EVENT_DISASSOC) {
                event.disassoc_info.locally_generated =
-                       !os_memcmp(mgmt->sa, drv->first_bss->addr, ETH_ALEN);
+                       ether_addr_equal(mgmt->sa, drv->first_bss->addr);
                event.disassoc_info.addr = bssid;
                event.disassoc_info.reason_code = reason_code;
                if (frame + len > mgmt->u.disassoc.variable) {
@@ -1537,7 +1535,7 @@ static void mlme_event_deauth_disassoc(struct wpa_driver_nl80211_data *drv,
                }
        } else {
                event.deauth_info.locally_generated =
-                       !os_memcmp(mgmt->sa, drv->first_bss->addr, ETH_ALEN);
+                       ether_addr_equal(mgmt->sa, drv->first_bss->addr);
                if (drv->ignore_deauth_event) {
                        wpa_printf(MSG_DEBUG, "nl80211: Ignore deauth event due to previous forced deauth-during-auth");
                        drv->ignore_deauth_event = 0;
@@ -1707,15 +1705,14 @@ static void mlme_event(struct i802_bss *bss,
                           bss->ifname);
        } else if (cmd != NL80211_CMD_FRAME_TX_STATUS  &&
                   !(data[4] & 0x01) &&
-                  os_memcmp(bss->addr, data + 4, ETH_ALEN) != 0 &&
+                  !ether_addr_equal(bss->addr, data + 4) &&
                   (is_zero_ether_addr(bss->rand_addr) ||
-                   os_memcmp(bss->rand_addr, data + 4, ETH_ALEN) != 0) &&
-                  os_memcmp(bss->addr, data + 4 + ETH_ALEN, ETH_ALEN) != 0 &&
+                   !ether_addr_equal(bss->rand_addr, data + 4)) &&
+                  !ether_addr_equal(bss->addr, data + 4 + ETH_ALEN) &&
                   (is_zero_ether_addr(drv->first_bss->prev_addr) ||
-                   os_memcmp(bss->prev_addr, data + 4 + ETH_ALEN,
-                             ETH_ALEN) != 0) &&
+                   !ether_addr_equal(bss->prev_addr, data + 4 + ETH_ALEN)) &&
                   (!mld_link ||
-                   os_memcmp(mld_link->addr, data + 4, ETH_ALEN) != 0)) {
+                   !ether_addr_equal(mld_link->addr, data + 4))) {
                wpa_printf(MSG_MSGDUMP, "nl80211: %s: Ignore MLME frame event "
                           "for foreign address", bss->ifname);
                return;
@@ -3556,7 +3553,7 @@ static void nl80211_port_authorized(struct wpa_driver_nl80211_data *drv,
 
                connected_addr = drv->sta_mlo_info.valid_links ?
                        drv->sta_mlo_info.ap_mld_addr : drv->bssid;
-               if (os_memcmp(addr, connected_addr, ETH_ALEN) != 0) {
+               if (!ether_addr_equal(addr, connected_addr)) {
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Ignore port authorized event for "
                                   MACSTR " (not the currently connected BSSID "
index c482b054819532076ca61b9579b39ea9b669b189..b9c317d4d94125ee10886e7aab01bdbfcdb5c5ab 100644 (file)
@@ -921,14 +921,14 @@ static void nl80211_check_bss_status(struct wpa_driver_nl80211_data *drv,
                           "nl80211: Local state (not associated) does not match with BSS state");
                clear_state_mismatch(drv, r->bssid);
        } else if (is_sta_interface(drv->nlmode) &&
-                  os_memcmp(drv->bssid, r->bssid, ETH_ALEN) != 0) {
+                  !ether_addr_equal(drv->bssid, r->bssid)) {
                wpa_printf(MSG_DEBUG,
                           "nl80211: Local state (associated with " MACSTR
                           ") does not match with BSS state",
                           MAC2STR(drv->bssid));
 
-               if (os_memcmp(drv->sta_mlo_info.ap_mld_addr, drv->bssid,
-                             ETH_ALEN) != 0) {
+               if (!ether_addr_equal(drv->sta_mlo_info.ap_mld_addr,
+                                     drv->bssid)) {
                        clear_state_mismatch(drv, r->bssid);
 
                        if (!is_zero_ether_addr(drv->sta_mlo_info.ap_mld_addr))
index 9beb6c46d367cbcb8053089be43582b61b5cb900..23c7086b2a97648079ff1acf72218283961e0d6f 100644 (file)
@@ -175,7 +175,7 @@ static void wpa_driver_roboswitch_receive(void *priv, const u8 *src_addr,
        struct wpa_driver_roboswitch_data *drv = priv;
 
        if (len > 14 && WPA_GET_BE16(buf + 12) == ETH_P_EAPOL &&
-           os_memcmp(buf, drv->own_addr, ETH_ALEN) == 0)
+           ether_addr_equal(buf, drv->own_addr))
                drv_event_eapol_rx(drv->ctx, src_addr, buf + 14, len - 14);
 }
 
index cf201fe86a0b67c594764c4881ad44f95ce5ff06..2c656fb6fcfa6a41a2da39968f7d8746ce22d4b4 100644 (file)
@@ -452,9 +452,10 @@ static void wpa_driver_wext_event_wireless(struct wpa_driver_wext_data *drv,
                                   MAC2STR((u8 *) iwe->u.ap_addr.sa_data));
                        if (is_zero_ether_addr(
                                    (const u8 *) iwe->u.ap_addr.sa_data) ||
-                           os_memcmp(iwe->u.ap_addr.sa_data,
-                                     "\x44\x44\x44\x44\x44\x44", ETH_ALEN) ==
-                           0) {
+                           ether_addr_equal((const u8 *)
+                                            iwe->u.ap_addr.sa_data,
+                                            (const u8 *)
+                                            "\x44\x44\x44\x44\x44\x44")) {
                                os_free(drv->assoc_req_ies);
                                drv->assoc_req_ies = NULL;
                                os_free(drv->assoc_resp_ies);
index 255d0fdc9982befb3c131191c88f53c2839943a2..61c7299026c36faff30d2d49b53de15f2ef404cd 100644 (file)
@@ -364,8 +364,7 @@ fst_group_get_peer_other_connection_2(struct fst_iface *iface,
                                cur_mbie, this_band_id);
                        if (!this_peer_addr)
                                continue;
-                       if (os_memcmp(this_peer_addr, peer_addr, ETH_ALEN) ==
-                           0) {
+                       if (ether_addr_equal(this_peer_addr, peer_addr)) {
                                os_memcpy(other_peer_addr, cur_peer_addr,
                                          ETH_ALEN);
                                return other_iface;
index 90c5fc0357ede4efa462e3715d0514ca7c60690b..96b2847383eea14b64ba249040925d528e7a5422 100644 (file)
@@ -56,7 +56,7 @@ bool fst_iface_is_connected(struct fst_iface *iface, const u8 *addr,
        const u8 *a = fst_iface_get_peer_first(iface, &ctx, mb_only);
 
        for (; a != NULL; a = fst_iface_get_peer_next(iface, &ctx, mb_only))
-               if (os_memcmp(addr, a, ETH_ALEN) == 0)
+               if (ether_addr_equal(addr, a))
                        return true;
 
        return false;
index e42a85c0403ab193ded2a98bf4a63f7dbeb38478..49886ffaaac2758d6d83346c40c93e581be3e85a 100644 (file)
@@ -238,10 +238,8 @@ fst_find_session_in_progress(const u8 *peer_addr, struct fst_group *g)
 
        foreach_fst_session(s) {
                if (s->group == g &&
-                   (os_memcmp(s->data.old_peer_addr, peer_addr,
-                              ETH_ALEN) == 0 ||
-                    os_memcmp(s->data.new_peer_addr, peer_addr,
-                              ETH_ALEN) == 0) &&
+                   (ether_addr_equal(s->data.old_peer_addr, peer_addr) ||
+                    ether_addr_equal(s->data.new_peer_addr, peer_addr)) &&
                    fst_session_is_in_progress(s))
                        return s;
        }
index 7897bc026a1bdbce6f0c1e5d8fd47ad42b9154a3..5da05056fb92885e97ed503122c4cd3cfaf79eb0 100644 (file)
@@ -179,7 +179,7 @@ static void l2_packet_receive(int sock, void *eloop_ctx, void *sock_ctx)
                 * authorization has been completed (in dormant state).
                 */
                if (l2->num_rx_br <= 1 &&
-                   (os_memcmp(eth->h_dest, l2->own_addr, ETH_ALEN) == 0 ||
+                   (ether_addr_equal(eth->h_dest, l2->own_addr) ||
                     is_multicast_ether_addr(eth->h_dest))) {
                        wpa_printf(MSG_DEBUG,
                                   "l2_packet_receive: Main packet socket for %s seems to have working RX - close workaround bridge socket",
@@ -241,7 +241,7 @@ static void l2_packet_receive_br(int sock, void *eloop_ctx, void *sock_ctx)
        wpa_printf(MSG_DEBUG, "%s: src=" MACSTR " len=%d",
                   __func__, MAC2STR(ll.sll_addr), (int) res);
 
-       if (os_memcmp(ll.sll_addr, l2->own_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(ll.sll_addr, l2->own_addr)) {
                wpa_printf(MSG_DEBUG, "%s: Drop RX of own frame", __func__);
                return;
        }
index 7e11abff4e037baa36e8200688a4356a3d611205..7b17eb908ee9b14f6ba71b89911d6aead860a279 100644 (file)
@@ -380,7 +380,7 @@ struct p2p_device * p2p_get_device(struct p2p_data *p2p, const u8 *addr)
 {
        struct p2p_device *dev;
        dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-               if (os_memcmp(dev->info.p2p_device_addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(dev->info.p2p_device_addr, addr))
                        return dev;
        }
        return NULL;
@@ -398,7 +398,7 @@ struct p2p_device * p2p_get_device_interface(struct p2p_data *p2p,
 {
        struct p2p_device *dev;
        dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-               if (os_memcmp(dev->interface_addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(dev->interface_addr, addr))
                        return dev;
        }
        return NULL;
@@ -486,8 +486,8 @@ static int p2p_add_group_clients(struct p2p_data *p2p, const u8 *go_dev_addr,
         * group, the information will be restored in the loop following this.
         */
        dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-               if (os_memcmp(dev->member_in_go_iface, go_interface_addr,
-                             ETH_ALEN) == 0) {
+               if (ether_addr_equal(dev->member_in_go_iface,
+                                    go_interface_addr)) {
                        os_memset(dev->member_in_go_iface, 0, ETH_ALEN);
                        os_memset(dev->member_in_go_dev, 0, ETH_ALEN);
                }
@@ -495,8 +495,7 @@ static int p2p_add_group_clients(struct p2p_data *p2p, const u8 *go_dev_addr,
 
        for (c = 0; c < info.num_clients; c++) {
                struct p2p_client_info *cli = &info.client[c];
-               if (os_memcmp(cli->p2p_device_addr, p2p->cfg->dev_addr,
-                             ETH_ALEN) == 0)
+               if (ether_addr_equal(cli->p2p_device_addr, p2p->cfg->dev_addr))
                        continue; /* ignore our own entry */
                dev = p2p_get_device(p2p, cli->p2p_device_addr);
                if (dev) {
@@ -754,7 +753,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
        }
 
        if (!is_zero_ether_addr(p2p->peer_filter) &&
-           os_memcmp(p2p_dev_addr, p2p->peer_filter, ETH_ALEN) != 0) {
+           !ether_addr_equal(p2p_dev_addr, p2p->peer_filter)) {
                p2p_dbg(p2p, "Do not add peer filter for " MACSTR
                        " due to peer filter", MAC2STR(p2p_dev_addr));
                p2p_parse_free(&msg);
@@ -799,7 +798,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
        dev->flags &= ~(P2P_DEV_PROBE_REQ_ONLY | P2P_DEV_GROUP_CLIENT_ONLY |
                        P2P_DEV_LAST_SEEN_AS_GROUP_CLIENT);
 
-       if (os_memcmp(addr, p2p_dev_addr, ETH_ALEN) != 0)
+       if (!ether_addr_equal(addr, p2p_dev_addr))
                os_memcpy(dev->interface_addr, addr, ETH_ALEN);
        if (msg.ssid &&
            msg.ssid[1] <= sizeof(dev->oper_ssid) &&
@@ -2394,7 +2393,7 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
        }
 
        if (dst && !is_broadcast_ether_addr(dst) &&
-           os_memcmp(dst, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(dst, p2p->cfg->dev_addr)) {
                /* Not sent to the broadcast address or our P2P Device Address
                 */
                p2p_dbg(p2p, "Probe Req DA " MACSTR " not ours - ignore it",
@@ -2478,7 +2477,7 @@ p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
        }
 
        if (msg.device_id &&
-           os_memcmp(msg.device_id, p2p->cfg->dev_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(msg.device_id, p2p->cfg->dev_addr)) {
                /* Device ID did not match */
                p2p_dbg(p2p, "Probe Req requested Device ID " MACSTR " did not match - ignore it",
                        MAC2STR(msg.device_id));
@@ -2567,8 +2566,7 @@ p2p_probe_req_rx(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
         */
        if ((p2p->state == P2P_CONNECT || p2p->state == P2P_CONNECT_LISTEN) &&
            p2p->go_neg_peer &&
-           os_memcmp(addr, p2p->go_neg_peer->info.p2p_device_addr, ETH_ALEN)
-           == 0 &&
+           ether_addr_equal(addr, p2p->go_neg_peer->info.p2p_device_addr) &&
            !(p2p->go_neg_peer->flags & P2P_DEV_WAIT_GO_NEG_CONFIRM)) {
                /* Received a Probe Request from GO Negotiation peer */
                p2p_dbg(p2p, "Found GO Negotiation peer - try to start GO negotiation from timeout");
@@ -2580,8 +2578,7 @@ p2p_probe_req_rx(struct p2p_data *p2p, const u8 *addr, const u8 *dst,
        if ((p2p->state == P2P_INVITE || p2p->state == P2P_INVITE_LISTEN) &&
            p2p->invite_peer &&
            (p2p->invite_peer->flags & P2P_DEV_WAIT_INV_REQ_ACK) &&
-           os_memcmp(addr, p2p->invite_peer->info.p2p_device_addr, ETH_ALEN)
-           == 0) {
+           ether_addr_equal(addr, p2p->invite_peer->info.p2p_device_addr)) {
                /* Received a Probe Request from Invite peer */
                p2p_dbg(p2p, "Found Invite peer - try to start Invite from timeout");
                eloop_cancel_timeout(p2p_invite_start, p2p, NULL);
@@ -2934,8 +2931,7 @@ void p2p_wps_success_cb(struct p2p_data *p2p, const u8 *mac_addr)
                return; /* No pending Group Formation */
        }
 
-       if (os_memcmp(mac_addr, p2p->go_neg_peer->intended_addr, ETH_ALEN) !=
-           0) {
+       if (!ether_addr_equal(mac_addr, p2p->go_neg_peer->intended_addr)) {
                p2p_dbg(p2p, "Ignore WPS registration success notification for "
                        MACSTR " (GO Negotiation peer " MACSTR ")",
                        MAC2STR(mac_addr),
@@ -3400,8 +3396,8 @@ static void p2p_retry_pd(struct p2p_data *p2p)
         */
 
        dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-               if (os_memcmp(p2p->pending_pd_devaddr,
-                             dev->info.p2p_device_addr, ETH_ALEN) != 0)
+               if (!ether_addr_equal(p2p->pending_pd_devaddr,
+                                     dev->info.p2p_device_addr))
                        continue;
                if (!dev->req_config_methods)
                        continue;
@@ -4094,8 +4090,8 @@ static void p2p_timeout_prov_disc_req(struct p2p_data *p2p)
                int for_join = 0;
 
                dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-                       if (os_memcmp(p2p->pending_pd_devaddr,
-                                     dev->info.p2p_device_addr, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(p2p->pending_pd_devaddr,
+                                             dev->info.p2p_device_addr))
                                continue;
                        if (dev->req_config_methods &&
                            (dev->flags & P2P_DEV_PD_FOR_JOIN))
@@ -4563,8 +4559,8 @@ static void p2p_process_presence_req(struct p2p_data *p2p, const u8 *da,
        p2p_dbg(p2p, "Received P2P Action - P2P Presence Request");
 
        for (g = 0; g < p2p->num_groups; g++) {
-               if (os_memcmp(da, p2p_group_get_interface_addr(p2p->groups[g]),
-                             ETH_ALEN) == 0) {
+               if (ether_addr_equal(
+                           da, p2p_group_get_interface_addr(p2p->groups[g]))) {
                        group = p2p->groups[g];
                        break;
                }
index 98805fee2409b42a4f8181df8239fda9c7455222..ff2bdfcd9bbddeadd8e456f2c5117e44c179920a 100644 (file)
@@ -223,7 +223,7 @@ void p2p_process_dev_disc_resp(struct p2p_data *p2p, const u8 *sa,
 
        go = p2p->pending_client_disc_go;
        if (go == NULL ||
-           os_memcmp(sa, go->info.p2p_device_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sa, go->info.p2p_device_addr)) {
                p2p_dbg(p2p, "Ignore unexpected Device Discoverability Response");
                return;
        }
@@ -249,10 +249,10 @@ void p2p_process_dev_disc_resp(struct p2p_data *p2p, const u8 *sa,
        p2p_dbg(p2p, "Device Discoverability Response status %u", status);
 
        if (p2p->go_neg_peer == NULL ||
-           os_memcmp(p2p->pending_client_disc_addr,
-                     p2p->go_neg_peer->info.p2p_device_addr, ETH_ALEN) != 0 ||
-           os_memcmp(p2p->go_neg_peer->member_in_go_dev,
-                     go->info.p2p_device_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(p2p->pending_client_disc_addr,
+                             p2p->go_neg_peer->info.p2p_device_addr) ||
+           !ether_addr_equal(p2p->go_neg_peer->member_in_go_dev,
+                             go->info.p2p_device_addr)) {
                p2p_dbg(p2p, "No pending operation with the client discoverability peer anymore");
                return;
        }
index 55db8a5c686cdf1214460ef03fe2729b847dbe10..30901b34ddd535924a4f302c712fdc037eda696a 100644 (file)
@@ -859,7 +859,7 @@ void p2p_process_go_neg_req(struct p2p_data *p2p, const u8 *sa,
                goto fail;
        }
 
-       if (os_memcmp(msg.p2p_device_addr, sa, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(msg.p2p_device_addr, sa)) {
                p2p_dbg(p2p, "Unexpected GO Negotiation Request SA=" MACSTR
                        " != dev_addr=" MACSTR,
                        MAC2STR(sa), MAC2STR(msg.p2p_device_addr));
index aa18af6c16c6bfea2b5885e1cdb35d763d403c16..c036f92a3cba233f1ac5c5e6b4557f37ebc7463b 100644 (file)
@@ -579,7 +579,7 @@ static int p2p_group_remove_member(struct p2p_group *group, const u8 *addr)
        m = group->members;
        prev = NULL;
        while (m) {
-               if (os_memcmp(m->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(m->addr, addr))
                        break;
                prev = m;
                m = m->next;
@@ -785,11 +785,11 @@ int p2p_group_match_dev_id(struct p2p_group *group, struct wpabuf *p2p)
        if (!msg.device_id)
                return 1; /* No filter on Device ID */
 
-       if (os_memcmp(msg.device_id, group->p2p->cfg->dev_addr, ETH_ALEN) == 0)
+       if (ether_addr_equal(msg.device_id, group->p2p->cfg->dev_addr))
                return 1; /* Match with our P2P Device Address */
 
        for (m = group->members; m; m = m->next) {
-               if (os_memcmp(msg.device_id, m->dev_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(msg.device_id, m->dev_addr))
                        return 1; /* Match with group client P2P Device Address */
        }
 
@@ -844,7 +844,7 @@ static struct p2p_group_member * p2p_group_get_client(struct p2p_group *group,
        struct p2p_group_member *m;
 
        for (m = group->members; m; m = m->next) {
-               if (os_memcmp(dev_id, m->dev_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(dev_id, m->dev_addr))
                        return m;
        }
 
@@ -872,7 +872,7 @@ static struct p2p_group_member * p2p_group_get_client_iface(
        struct p2p_group_member *m;
 
        for (m = group->members; m; m = m->next) {
-               if (os_memcmp(interface_addr, m->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(interface_addr, m->addr))
                        return m;
        }
 
@@ -1038,7 +1038,7 @@ int p2p_group_is_client_connected(struct p2p_group *group, const u8 *dev_addr)
        struct p2p_group_member *m;
 
        for (m = group->members; m; m = m->next) {
-               if (os_memcmp(m->dev_addr, dev_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(m->dev_addr, dev_addr))
                        return 1;
        }
 
@@ -1051,7 +1051,7 @@ int p2p_group_is_group_id_match(struct p2p_group *group, const u8 *group_id,
 {
        if (group_id_len != ETH_ALEN + group->cfg->ssid_len)
                return 0;
-       if (os_memcmp(group_id, group->p2p->cfg->dev_addr, ETH_ALEN) != 0)
+       if (!ether_addr_equal(group_id, group->p2p->cfg->dev_addr))
                return 0;
        return os_memcmp(group_id + ETH_ALEN, group->cfg->ssid,
                         group->cfg->ssid_len) == 0;
index 941ec004bff82189d3e824a35afdc88b7bb92cb1..70a7f6fa684d3ea9393882e3b3cafa784126c903 100644 (file)
@@ -33,8 +33,8 @@ static struct wpabuf * p2p_build_invitation_req(struct p2p_data *p2p,
                for (i = 0; i < p2p->num_groups; i++) {
                        struct p2p_group *g = p2p->groups[i];
                        struct wpabuf *ie;
-                       if (os_memcmp(p2p_group_get_interface_addr(g),
-                                     p2p->inv_bssid, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(p2p_group_get_interface_addr(g),
+                                             p2p->inv_bssid))
                                continue;
                        ie = p2p_group_get_wfd_ie(g);
                        if (ie) {
@@ -127,8 +127,8 @@ static struct wpabuf * p2p_build_invitation_resp(struct p2p_data *p2p,
                for (i = 0; i < p2p->num_groups; i++) {
                        struct p2p_group *g = p2p->groups[i];
                        struct wpabuf *ie;
-                       if (os_memcmp(p2p_group_get_interface_addr(g),
-                                     group_bssid, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(p2p_group_get_interface_addr(g),
+                                             group_bssid))
                                continue;
                        ie = p2p_group_get_wfd_ie(g);
                        if (ie) {
index f75cee8ae0085a9e3bf1cf92a3afd3f7faeaf2a2..542521edb1d6275c07c20d776ce3224d1cbdf54c 100644 (file)
@@ -544,7 +544,7 @@ do { \
        if (msg->persistent_dev) {
                channel_list = 1;
                config_timeout = 1;
-               if (os_memcmp(msg->persistent_dev, addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(msg->persistent_dev, addr)) {
                        intended_addr = 1;
                        operating_channel = 1;
                }
@@ -730,7 +730,7 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
        if (!msg.status) {
                unsigned int forced_freq, pref_freq;
 
-               if (os_memcmp(p2p->cfg->dev_addr, msg.adv_mac, ETH_ALEN)) {
+               if (!ether_addr_equal(p2p->cfg->dev_addr, msg.adv_mac)) {
                        p2p_dbg(p2p,
                                "P2PS PD adv mac does not match the local one");
                        reject = P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
@@ -892,14 +892,14 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
                goto out;
 
        if (p2p->p2ps_prov->adv_id != adv_id ||
-           os_memcmp(p2p->p2ps_prov->adv_mac, msg.adv_mac, ETH_ALEN)) {
+           !ether_addr_equal(p2p->p2ps_prov->adv_mac, msg.adv_mac)) {
                p2p_dbg(p2p,
                        "P2PS Follow-on PD with mismatch Advertisement ID/MAC");
                goto out;
        }
 
        if (p2p->p2ps_prov->session_id != session_id ||
-           os_memcmp(p2p->p2ps_prov->session_mac, msg.session_mac, ETH_ALEN)) {
+           !ether_addr_equal(p2p->p2ps_prov->session_mac, msg.session_mac)) {
                p2p_dbg(p2p, "P2PS Follow-on PD with mismatch Session ID/MAC");
                goto out;
        }
@@ -1239,8 +1239,7 @@ static int p2p_validate_p2ps_pd_resp(struct p2p_data *p2p,
                return -1;
        }
 
-       if (os_memcmp(p2p->p2ps_prov->session_mac, msg->session_mac,
-                     ETH_ALEN)) {
+       if (!ether_addr_equal(p2p->p2ps_prov->session_mac, msg->session_mac)) {
                p2p_dbg(p2p,
                        "Ignore PD Response with unexpected Session MAC");
                return -1;
@@ -1252,7 +1251,7 @@ static int p2p_validate_p2ps_pd_resp(struct p2p_data *p2p,
                return -1;
        }
 
-       if (os_memcmp(p2p->p2ps_prov->adv_mac, msg->adv_mac, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(p2p->p2ps_prov->adv_mac, msg->adv_mac)) {
                p2p_dbg(p2p,
                        "Ignore PD Response with unexpected Advertisement MAC");
                return -1;
@@ -1396,7 +1395,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
         * was sent earlier, we reset that state info here.
         */
        if (p2p->user_initiated_pd &&
-           os_memcmp(p2p->pending_pd_devaddr, sa, ETH_ALEN) == 0)
+           ether_addr_equal(p2p->pending_pd_devaddr, sa))
                p2p_reset_pending_pd(p2p);
 
        if (msg.wps_config_methods != req_config_methods) {
@@ -1758,8 +1757,8 @@ void p2p_reset_pending_pd(struct p2p_data *p2p)
        struct p2p_device *dev;
 
        dl_list_for_each(dev, &p2p->devices, struct p2p_device, list) {
-               if (os_memcmp(p2p->pending_pd_devaddr,
-                             dev->info.p2p_device_addr, ETH_ALEN))
+               if (!ether_addr_equal(p2p->pending_pd_devaddr,
+                                     dev->info.p2p_device_addr))
                        continue;
                if (!dev->req_config_methods)
                        continue;
index b9e753f2051680e9e1a83359fa8310d779a752a5..050b6fd88fd7584aca2633920d2419ab3d73e813 100644 (file)
@@ -79,8 +79,7 @@ struct p2p_sd_query * p2p_pending_sd_req(struct p2p_data *p2p,
                        count++;
                }
                if (!q->for_all_peers &&
-                   os_memcmp(q->peer, dev->info.p2p_device_addr, ETH_ALEN) ==
-                   0)
+                   ether_addr_equal(q->peer, dev->info.p2p_device_addr))
                        goto found;
        }
 
@@ -289,8 +288,7 @@ int p2p_start_sd(struct p2p_data *p2p, struct p2p_device *dev)
        if (query == NULL)
                return -1;
        if (p2p->state == P2P_SEARCH &&
-           os_memcmp(p2p->sd_query_no_ack, dev->info.p2p_device_addr,
-                     ETH_ALEN) == 0) {
+           ether_addr_equal(p2p->sd_query_no_ack, dev->info.p2p_device_addr)) {
                p2p_dbg(p2p, "Do not start Service Discovery with " MACSTR
                        " due to it being the first no-ACK peer in this search iteration",
                        MAC2STR(dev->info.p2p_device_addr));
@@ -492,7 +490,7 @@ void p2p_rx_gas_initial_resp(struct p2p_data *p2p, const u8 *sa,
        u16 update_indic;
 
        if (p2p->state != P2P_SD_DURING_FIND || p2p->sd_peer == NULL ||
-           os_memcmp(sa, p2p->sd_peer->info.p2p_device_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sa, p2p->sd_peer->info.p2p_device_addr)) {
                p2p_dbg(p2p, "Ignore unexpected GAS Initial Response from "
                        MACSTR, MAC2STR(sa));
                return;
@@ -642,7 +640,7 @@ void p2p_rx_gas_comeback_req(struct p2p_data *p2p, const u8 *sa,
                p2p_dbg(p2p, "No pending SD response fragment available");
                return;
        }
-       if (os_memcmp(sa, p2p->sd_resp_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sa, p2p->sd_resp_addr)) {
                p2p_dbg(p2p, "No pending SD response fragment for " MACSTR,
                        MAC2STR(sa));
                return;
@@ -707,7 +705,7 @@ void p2p_rx_gas_comeback_resp(struct p2p_data *p2p, const u8 *sa,
        wpa_hexdump(MSG_DEBUG, "P2P: RX GAS Comeback Response", data, len);
 
        if (p2p->state != P2P_SD_DURING_FIND || p2p->sd_peer == NULL ||
-           os_memcmp(sa, p2p->sd_peer->info.p2p_device_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sa, p2p->sd_peer->info.p2p_device_addr)) {
                p2p_dbg(p2p, "Ignore unexpected GAS Comeback Response from "
                        MACSTR, MAC2STR(sa));
                return;
index ae1b06c50c481dd885b72f9a93d052f1b1ae4575..b0a418ef0880881d2ae4bf1d3f070bec80f28421 100644 (file)
@@ -3125,7 +3125,7 @@ static int ieee802_1x_kay_mkpdu_validity_check(struct ieee802_1x_kay *kay,
                   be_to_host16(eth_hdr->ethertype));
 
        /* the destination address shall not be an individual address */
-       if (os_memcmp(eth_hdr->dest, pae_group_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(eth_hdr->dest, pae_group_addr)) {
                wpa_printf(MSG_DEBUG,
                           "KaY: ethernet destination address is not PAE group address");
                return -1;
index 5d73f81951833fb191848172af7620f72cee9cf8..35c620605a1a6ef5f2b484e5a0c01e807505e3ad 100644 (file)
@@ -1024,15 +1024,15 @@ static bool is_pasn_auth_frame(struct pasn_data *pasn,
                return false;
 
        /* Not our frame; do nothing */
-       if (os_memcmp(mgmt->bssid, pasn->bssid, ETH_ALEN) != 0)
+       if (!ether_addr_equal(mgmt->bssid, pasn->bssid))
                return false;
 
-       if (rx && (os_memcmp(mgmt->da, pasn->own_addr, ETH_ALEN) != 0 ||
-                  os_memcmp(mgmt->sa, pasn->peer_addr, ETH_ALEN) != 0))
+       if (rx && (!ether_addr_equal(mgmt->da, pasn->own_addr) ||
+                  !ether_addr_equal(mgmt->sa, pasn->peer_addr)))
                return false;
 
-       if (!rx && (os_memcmp(mgmt->sa, pasn->own_addr, ETH_ALEN) != 0 ||
-                   os_memcmp(mgmt->da, pasn->peer_addr, ETH_ALEN) != 0))
+       if (!rx && (!ether_addr_equal(mgmt->sa, pasn->own_addr) ||
+                   !ether_addr_equal(mgmt->da, pasn->peer_addr)))
                return false;
 
        /* Not PASN; do nothing */
index ee9e46d2aa01cb799c5ae3daab619443a536bf06..18aaec1bb28f229c5c64f69c2d145aa50cbb5ca3 100644 (file)
@@ -1556,7 +1556,7 @@ void radius_client_flush_auth(struct radius_client_data *radius,
        entry = radius->msgs;
        while (entry) {
                if (entry->msg_type == RADIUS_AUTH &&
-                   os_memcmp(entry->addr, addr, ETH_ALEN) == 0) {
+                   ether_addr_equal(entry->addr, addr)) {
                        hostapd_logger(radius->ctx, addr,
                                       HOSTAPD_MODULE_RADIUS,
                                       HOSTAPD_LEVEL_DEBUG,
index c972428156aac864db872d892c74510b1c1b1f56..ed33dbae81b052c15d44e14ea79a5db50ba8347c 100644 (file)
@@ -296,8 +296,8 @@ pmksa_cache_add_entry(struct rsn_pmksa_cache *pmksa,
        pos = pmksa->pmksa;
        prev = NULL;
        while (pos) {
-               if (os_memcmp(entry->aa, pos->aa, ETH_ALEN) == 0 &&
-                   os_memcmp(entry->spa, pos->spa, ETH_ALEN) == 0) {
+               if (ether_addr_equal(entry->aa, pos->aa) &&
+                   ether_addr_equal(entry->spa, pos->spa)) {
                        if (pos->pmk_len == entry->pmk_len &&
                            os_memcmp_const(pos->pmk, entry->pmk,
                                            entry->pmk_len) == 0 &&
@@ -483,8 +483,8 @@ struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
 {
        struct rsn_pmksa_cache_entry *entry = pmksa->pmksa;
        while (entry) {
-               if ((aa == NULL || os_memcmp(entry->aa, aa, ETH_ALEN) == 0) &&
-                   (!spa || os_memcmp(entry->spa, spa, ETH_ALEN) == 0) &&
+               if ((aa == NULL || ether_addr_equal(entry->aa, aa)) &&
+                   (!spa || ether_addr_equal(entry->spa, spa)) &&
                    (pmkid == NULL ||
                     os_memcmp(entry->pmkid, pmkid, PMKID_LEN) == 0) &&
                    (!akmp || akmp == entry->akmp) &&
index 1a288844a1ada695594c263c6f895a6cfd47a2c6..026a98d9ffb0b3b653570a0a84b73afb78336932 100644 (file)
@@ -69,7 +69,7 @@ static void rsn_preauth_receive(void *ctx, const u8 *src_addr,
 
        if (sm->preauth_eapol == NULL ||
            is_zero_ether_addr(sm->preauth_bssid) ||
-           os_memcmp(sm->preauth_bssid, src_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sm->preauth_bssid, src_addr)) {
                wpa_printf(MSG_WARNING, "RSN pre-auth frame received from "
                           "unexpected source " MACSTR " - dropped",
                           MAC2STR(src_addr));
@@ -333,7 +333,7 @@ void rsn_preauth_candidate_process(struct wpa_sm *sm)
                struct rsn_pmksa_cache_entry *p = NULL;
                p = pmksa_cache_get(sm->pmksa, candidate->bssid, sm->own_addr,
                                    NULL, NULL, 0);
-               if (os_memcmp(sm->bssid, candidate->bssid, ETH_ALEN) != 0 &&
+               if (!ether_addr_equal(sm->bssid, candidate->bssid) &&
                    (p == NULL || p->opportunistic)) {
                        wpa_msg(sm->ctx->msg_ctx, MSG_DEBUG, "RSN: PMKSA "
                                "candidate " MACSTR
@@ -395,7 +395,7 @@ void pmksa_candidate_add(struct wpa_sm *sm, const u8 *bssid,
        cand = NULL;
        dl_list_for_each(pos, &sm->pmksa_candidates,
                         struct rsn_pmksa_candidate, list) {
-               if (os_memcmp(pos->bssid, bssid, ETH_ALEN) == 0) {
+               if (ether_addr_equal(pos->bssid, bssid)) {
                        cand = pos;
                        break;
                }
@@ -487,7 +487,7 @@ void rsn_preauth_scan_result(struct wpa_sm *sm, const u8 *bssid,
            os_memcmp(ssid + 2, sm->ssid, sm->ssid_len) != 0)
                return; /* Not for the current SSID */
 
-       if (os_memcmp(bssid, sm->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(bssid, sm->bssid))
                return; /* Ignore current AP */
 
        if (wpa_parse_wpa_ie(rsn, 2 + rsn[1], &ie))
index 47b1cd45ea87afd525d440bac976f3da6561a935..8a7509170599d669ae41afa29c82b1a42d1c41e8 100644 (file)
@@ -294,7 +294,7 @@ static int wpa_tdls_tpk_send(struct wpa_sm *sm, const u8 *dest, u8 action_code,
                return 0; /* No retries */
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, dest, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, dest))
                        break;
        }
 
@@ -791,7 +791,7 @@ static int wpa_tdls_send_teardown(struct wpa_sm *sm, const u8 *addr,
 
        /* Find the node and free from the list */
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -880,7 +880,7 @@ int wpa_tdls_teardown_link(struct wpa_sm *sm, const u8 *addr, u16 reason_code)
                return -1;
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -913,7 +913,7 @@ void wpa_tdls_disable_unreachable_link(struct wpa_sm *sm, const u8 *addr)
        struct wpa_tdls_peer *peer;
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -949,7 +949,7 @@ const char * wpa_tdls_get_link_status(struct wpa_sm *sm, const u8 *addr)
                return "disabled";
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -976,7 +976,7 @@ static int wpa_tdls_recv_teardown(struct wpa_sm *sm, const u8 *src_addr,
 
        /* Find the node and free from the list */
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, src_addr))
                        break;
        }
 
@@ -1072,7 +1072,7 @@ wpa_tdls_add_peer(struct wpa_sm *sm, const u8 *addr, int *existing)
        if (existing)
                *existing = 0;
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(peer->addr, addr)) {
                        if (existing)
                                *existing = 1;
                        return peer; /* re-use existing entry */
@@ -1564,15 +1564,15 @@ static bool wpa_tdls_is_lnkid_bss_valid(struct wpa_sm *sm,
        *link_id = -1;
 
        if (!sm->mlo.valid_links) {
-               if (os_memcmp(sm->bssid, lnkid->bssid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(sm->bssid, lnkid->bssid))
                        return false;
        } else {
                int i;
 
                for (i = 0; i < MAX_NUM_MLD_LINKS; i++) {
                        if ((sm->mlo.valid_links & BIT(i)) &&
-                           os_memcmp(lnkid->bssid, sm->mlo.links[i].bssid,
-                                     ETH_ALEN) == 0) {
+                           ether_addr_equal(lnkid->bssid,
+                                            sm->mlo.links[i].bssid)) {
                                *link_id = i;
                                break;
                        }
@@ -2371,7 +2371,7 @@ static int wpa_tdls_process_tpk_m2(struct wpa_sm *sm, const u8 *src_addr,
        wpa_printf(MSG_DEBUG, "TDLS: Received TDLS Setup Response / TPK M2 "
                   "(Peer " MACSTR ")", MAC2STR(src_addr));
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, src_addr))
                        break;
        }
        if (peer == NULL) {
@@ -2460,8 +2460,8 @@ static int wpa_tdls_process_tpk_m2(struct wpa_sm *sm, const u8 *src_addr,
                    kde.lnkid, kde.lnkid_len);
        lnkid = (struct wpa_tdls_lnkid *) kde.lnkid;
 
-       if (os_memcmp(sm->bssid, wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
-                     ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sm->bssid,
+                             wpa_tdls_get_link_bssid(sm, peer->mld_link_id))) {
                wpa_printf(MSG_INFO, "TDLS: TPK M2 from different BSS");
                status = WLAN_STATUS_NOT_IN_SAME_BSS;
                goto error;
@@ -2668,7 +2668,7 @@ static int wpa_tdls_process_tpk_m3(struct wpa_sm *sm, const u8 *src_addr,
        wpa_printf(MSG_DEBUG, "TDLS: Received TDLS Setup Confirm / TPK M3 "
                   "(Peer " MACSTR ")", MAC2STR(src_addr));
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, src_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, src_addr))
                        break;
        }
        if (peer == NULL) {
@@ -2713,8 +2713,8 @@ static int wpa_tdls_process_tpk_m3(struct wpa_sm *sm, const u8 *src_addr,
                    (u8 *) kde.lnkid, kde.lnkid_len);
        lnkid = (struct wpa_tdls_lnkid *) kde.lnkid;
 
-       if (os_memcmp(wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
-                     lnkid->bssid, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(wpa_tdls_get_link_bssid(sm, peer->mld_link_id),
+                             lnkid->bssid)) {
                wpa_printf(MSG_INFO, "TDLS: TPK M3 from diff BSS");
                goto error;
        }
@@ -2899,7 +2899,7 @@ void wpa_tdls_remove(struct wpa_sm *sm, const u8 *addr)
                return;
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -2937,7 +2937,7 @@ static void wpa_supplicant_rx_tdls(void *ctx, const u8 *src_addr,
                return;
        }
 
-       if (os_memcmp(src_addr, sm->own_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(src_addr, sm->own_addr)) {
                wpa_printf(MSG_DEBUG, "TDLS: Discard copy of own message");
                return;
        }
@@ -3263,7 +3263,7 @@ int wpa_tdls_enable_chan_switch(struct wpa_sm *sm, const u8 *addr,
        }
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
@@ -3297,7 +3297,7 @@ int wpa_tdls_disable_chan_switch(struct wpa_sm *sm, const u8 *addr)
                return -1;
 
        for (peer = sm->tdls; peer; peer = peer->next) {
-               if (os_memcmp(peer->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(peer->addr, addr))
                        break;
        }
 
index 5f222dd3dd36b0d344998aaf928b7d71a4ab4a4d..950d91bfd77ae253fe9d02ad45d4772a9d19444e 100644 (file)
@@ -768,7 +768,7 @@ static u8 * wpa_mlo_link_kde(struct wpa_sm *sm, u8 *pos)
 static bool is_valid_ap_mld_mac_kde(struct wpa_sm *sm, const u8 *mac_kde)
 {
        return mac_kde &&
-               os_memcmp(mac_kde, sm->mlo.ap_mld_addr, ETH_ALEN) == 0;
+               ether_addr_equal(mac_kde, sm->mlo.ap_mld_addr);
 }
 
 
@@ -2225,9 +2225,8 @@ static int wpa_supplicant_validate_link_kde(struct wpa_sm *sm, u8 link_id,
                return -1;
        }
 
-       if (os_memcmp(sm->mlo.links[link_id].bssid,
-                     &link_kde[RSN_MLO_LINK_KDE_LINK_MAC_INDEX],
-                     ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sm->mlo.links[link_id].bssid,
+                             &link_kde[RSN_MLO_LINK_KDE_LINK_MAC_INDEX])) {
                wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
                        "RSN: MLO Link %u MAC address (" MACSTR
                        ") not matching association response (" MACSTR ")",
@@ -4110,7 +4109,7 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
        os_memset(sm->rx_replay_counter, 0, WPA_REPLAY_COUNTER_LEN);
        sm->rx_replay_counter_set = 0;
        sm->renew_snonce = 1;
-       if (os_memcmp(sm->preauth_bssid, bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(sm->preauth_bssid, bssid))
                rsn_preauth_deinit(sm);
 
 #ifdef CONFIG_IEEE80211R
index 69de046c08b0f82e308f838511ff411983ef626b..9fb5668efc9146701a8255eabfb0ca1c1ff4520e 100644 (file)
@@ -607,7 +607,7 @@ int wpa_ft_process_response(struct wpa_sm *sm, const u8 *ies, size_t ies_len,
                        goto fail;
                }
 
-               if (os_memcmp(target_ap, sm->target_ap, ETH_ALEN) != 0) {
+               if (!ether_addr_equal(target_ap, sm->target_ap)) {
                        wpa_printf(MSG_DEBUG, "FT: No over-the-DS in progress "
                                   "with this Target AP - drop FT Action "
                                   "Response");
@@ -1330,7 +1330,7 @@ static struct pasn_ft_r1kh * wpa_ft_pasn_get_r1kh(struct wpa_sm *sm,
        size_t i;
 
        for (i = 0; i < sm->n_pasn_r1kh; i++)
-               if (os_memcmp(sm->pasn_r1kh[i].bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(sm->pasn_r1kh[i].bssid, bssid))
                        return &sm->pasn_r1kh[i];
 
        return NULL;
index 1fe38063b2534eccf0aa882aa0c2ff612c3f78e1..7cfebfabc7d16e8887d11cc65ff300d7c38c4a90 100644 (file)
@@ -336,9 +336,9 @@ int wps_is_addr_authorized(const struct wpabuf *msg, const u8 *addr,
 
        pos = attr.authorized_macs;
        for (i = 0; i < attr.authorized_macs_len / ETH_ALEN; i++) {
-               if (os_memcmp(pos, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(pos, addr))
                        return 2;
-               if (os_memcmp(pos, bcast, ETH_ALEN) == 0)
+               if (ether_addr_equal(pos, bcast))
                        return 1;
                pos += ETH_ALEN;
        }
index 819cd43f6afdb4f942aa9d6944687f639ebac56f..af828e5c9ed8c21c1c72d024d1e4b80f55e75063 100644 (file)
@@ -715,8 +715,7 @@ static int wps_process_cred_e(struct wps_data *wps, const u8 *cred,
            wps_process_cred(&attr, &wps->cred))
                return -1;
 
-       if (os_memcmp(wps->cred.mac_addr, wps->wps->dev.mac_addr, ETH_ALEN) !=
-           0) {
+       if (!ether_addr_equal(wps->cred.mac_addr, wps->wps->dev.mac_addr)) {
                wpa_printf(MSG_DEBUG, "WPS: MAC Address in the Credential ("
                           MACSTR ") does not match with own address (" MACSTR
                           ")", MAC2STR(wps->cred.mac_addr),
@@ -815,8 +814,7 @@ static int wps_process_ap_settings_e(struct wps_data *wps,
        wpa_printf(MSG_INFO, "WPS: Received new AP configuration from "
                   "Registrar");
 
-       if (os_memcmp(cred.mac_addr, wps->wps->dev.mac_addr, ETH_ALEN) !=
-           0) {
+       if (!ether_addr_equal(cred.mac_addr, wps->wps->dev.mac_addr)) {
                wpa_printf(MSG_DEBUG, "WPS: MAC Address in the AP Settings ("
                           MACSTR ") does not match with own address (" MACSTR
                           ")", MAC2STR(cred.mac_addr),
index 31d2e50e4cff7eab32699486971b9185a6fd0828..dede64b0136ac37d0f8cf3f62bc40d66c306bafc 100644 (file)
@@ -62,7 +62,7 @@ static struct wps_er_sta * wps_er_sta_get(struct wps_er_ap *ap, const u8 *addr,
        struct wps_er_sta *sta;
        dl_list_for_each(sta, &ap->sta, struct wps_er_sta, list) {
                if ((addr == NULL ||
-                    os_memcmp(sta->addr, addr, ETH_ALEN) == 0) &&
+                    ether_addr_equal(sta->addr, addr)) &&
                    (uuid == NULL ||
                     os_memcmp(uuid, sta->uuid, WPS_UUID_LEN) == 0))
                        return sta;
@@ -106,7 +106,7 @@ static struct wps_er_ap * wps_er_ap_get(struct wps_er *er,
                    (uuid == NULL ||
                     os_memcmp(uuid, ap->uuid, WPS_UUID_LEN) == 0) &&
                    (mac_addr == NULL ||
-                    os_memcmp(mac_addr, ap->mac_addr, ETH_ALEN) == 0))
+                    ether_addr_equal(mac_addr, ap->mac_addr)))
                        return ap;
        }
        return NULL;
index 2b9c469aa6ed8d1b8239b1f310fcd63c2e9b8da5..f49784f95eb6894d9a62b4d5cfa00fd3d0833b75 100644 (file)
@@ -238,7 +238,7 @@ static void wps_registrar_add_authorized_mac(struct wps_registrar *reg,
        wpa_printf(MSG_DEBUG, "WPS: Add authorized MAC " MACSTR,
                   MAC2STR(addr));
        for (i = 0; i < WPS_MAX_AUTHORIZED_MACS; i++)
-               if (os_memcmp(reg->authorized_macs[i], addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(reg->authorized_macs[i], addr)) {
                        wpa_printf(MSG_DEBUG, "WPS: Authorized MAC was "
                                   "already in the list");
                        return; /* already in list */
@@ -259,7 +259,7 @@ static void wps_registrar_remove_authorized_mac(struct wps_registrar *reg,
        wpa_printf(MSG_DEBUG, "WPS: Remove authorized MAC " MACSTR,
                   MAC2STR(addr));
        for (i = 0; i < WPS_MAX_AUTHORIZED_MACS; i++) {
-               if (os_memcmp(reg->authorized_macs[i], addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(reg->authorized_macs[i], addr))
                        break;
        }
        if (i == WPS_MAX_AUTHORIZED_MACS) {
@@ -296,7 +296,7 @@ static struct wps_registrar_device * wps_device_get(struct wps_registrar *reg,
        struct wps_registrar_device *dev;
 
        for (dev = reg->devices; dev; dev = dev->next) {
-               if (os_memcmp(dev->dev.mac_addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(dev->dev.mac_addr, addr))
                        return dev;
        }
        return NULL;
@@ -353,7 +353,7 @@ static void wps_registrar_add_pbc_session(struct wps_registrar *reg,
 
        pbc = reg->pbc_sessions;
        while (pbc) {
-               if (os_memcmp(pbc->addr, addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(pbc->addr, addr) &&
                    os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0) {
                        if (prev)
                                prev->next = pbc->next;
@@ -405,8 +405,7 @@ static void wps_registrar_remove_pbc_session(struct wps_registrar *reg,
        while (pbc) {
                if (os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0 ||
                    (p2p_dev_addr && !is_zero_ether_addr(reg->p2p_dev_addr) &&
-                    os_memcmp(reg->p2p_dev_addr, p2p_dev_addr, ETH_ALEN) ==
-                    0)) {
+                    ether_addr_equal(reg->p2p_dev_addr, p2p_dev_addr))) {
                        if (prev)
                                prev->next = pbc->next;
                        else
@@ -2611,7 +2610,7 @@ static int wps_registrar_p2p_dev_addr_match(struct wps_data *wps)
        if (is_zero_ether_addr(reg->p2p_dev_addr))
                return 1; /* no filtering in use */
 
-       if (os_memcmp(reg->p2p_dev_addr, wps->p2p_dev_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(reg->p2p_dev_addr, wps->p2p_dev_addr)) {
                wpa_printf(MSG_DEBUG, "WPS: No match on P2P Device Address "
                           "filtering for PBC: expected " MACSTR " was "
                           MACSTR " - indicate PBC session overlap",
@@ -2632,7 +2631,7 @@ static int wps_registrar_skip_overlap(struct wps_data *wps)
        if (is_zero_ether_addr(reg->p2p_dev_addr))
                return 0; /* no specific Enrollee selected */
 
-       if (os_memcmp(reg->p2p_dev_addr, wps->p2p_dev_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(reg->p2p_dev_addr, wps->p2p_dev_addr)) {
                wpa_printf(MSG_DEBUG, "WPS: Skip PBC overlap due to selected "
                           "Enrollee match");
                return 1;
index 7b669966f64db5c1a6a15f7c25325212e6b6f55c..b0de1d4eb1b4a3b0a944f9900e4f419003f9614e 100644 (file)
@@ -21,7 +21,7 @@ struct wlantest_bss * bss_find(struct wlantest *wt, const u8 *bssid)
        struct wlantest_bss *bss;
 
        dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
-               if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(bss->bssid, bssid))
                        return bss;
        }
 
@@ -35,7 +35,7 @@ struct wlantest_bss * bss_find_mld(struct wlantest *wt, const u8 *mld_mac_addr,
        struct wlantest_bss *bss;
 
        dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
-               if (os_memcmp(bss->mld_mac_addr, mld_mac_addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(bss->mld_mac_addr, mld_mac_addr) &&
                    (link_id < 0 ||
                     (bss->link_id_set && bss->link_id == link_id)))
                        return bss;
@@ -132,7 +132,7 @@ static void bss_add_pmk(struct wlantest *wt, struct wlantest_bss *bss)
        dl_list_for_each(p, &wt->passphrase, struct wlantest_passphrase, list)
        {
                if (!is_zero_ether_addr(p->bssid) &&
-                   os_memcmp(p->bssid, bss->bssid, ETH_ALEN) != 0)
+                   !ether_addr_equal(p->bssid, bss->bssid))
                        continue;
                if (p->ssid_len &&
                    (p->ssid_len != bss->ssid_len ||
index 68a2b410cae34ba1aaf48d8ae0f7dd469a41b160..01c8cb14507d1d758b1ff20429ee276abd59a169 100644 (file)
@@ -832,7 +832,7 @@ static void ctrl_add_passphrase(struct wlantest *wt, int sock, u8 *cmd,
        dl_list_for_each(pa, &wt->passphrase, struct wlantest_passphrase, list)
        {
                if (os_strcmp(p->passphrase, pa->passphrase) == 0 &&
-                   os_memcmp(p->bssid, pa->bssid, ETH_ALEN) == 0) {
+                   ether_addr_equal(p->bssid, pa->bssid)) {
                        wpa_printf(MSG_INFO, "Passphrase was already known");
                        os_free(p);
                        p = NULL;
@@ -845,7 +845,7 @@ static void ctrl_add_passphrase(struct wlantest *wt, int sock, u8 *cmd,
                dl_list_add(&wt->passphrase, &p->list);
                dl_list_for_each(bss, &wt->bss, struct wlantest_bss, list) {
                        if (bssid &&
-                           os_memcmp(p->bssid, bss->bssid, ETH_ALEN) != 0)
+                           !ether_addr_equal(p->bssid, bss->bssid))
                                continue;
                        bss_add_pmk_from_passphrase(bss, p->passphrase);
                }
@@ -1151,7 +1151,7 @@ static void ctrl_send_(struct wlantest *wt, int sock, u8 *cmd, size_t clen)
        switch (WLAN_FC_GET_TYPE(fc)) {
        case WLAN_FC_TYPE_MGMT:
                bssid = hdr->addr3;
-               if (os_memcmp(hdr->addr2, hdr->addr3, ETH_ALEN) == 0)
+               if (ether_addr_equal(hdr->addr2, hdr->addr3))
                        sta_addr = hdr->addr1;
                else
                        sta_addr = hdr->addr2;
index bac956d3bc243cab04b2ddb43b6aa9f49922b472..1f89ea9d16ad7d6609614f212cfd44ea5338d7d4 100644 (file)
@@ -233,11 +233,11 @@ static int wlantest_inject_prot(struct wlantest *wt, struct wlantest_bss *bss,
                }
        }
        if (tk) {
-               if (os_memcmp(hdr->addr2, tdls->init->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(hdr->addr2, tdls->init->addr))
                        pn = tdls->rsc_init[tid];
                else
                        pn = tdls->rsc_resp[tid];
-       } else if (os_memcmp(hdr->addr2, bss->bssid, ETH_ALEN) == 0)
+       } else if (ether_addr_equal(hdr->addr2, bss->bssid))
                pn = sta->rsc_fromds[tid];
        else
                pn = sta->rsc_tods[tid];
index 92dd0a6d801dbef9eff3b227cd857847b6fac721..16f312c1b37fc4ef3cd219e79f2ca65ade3109a0 100644 (file)
@@ -35,11 +35,11 @@ static struct wlantest_sta * rx_get_sta(struct wlantest *wt,
                if (len < 24)
                        return NULL;
                bssid = hdr->addr3;
-               if (os_memcmp(bssid, hdr->addr2, ETH_ALEN) == 0) {
+               if (ether_addr_equal(bssid, hdr->addr2)) {
                        sta_addr = hdr->addr1;
                        *to_ap = 0;
                } else {
-                       if (os_memcmp(bssid, hdr->addr1, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(bssid, hdr->addr1))
                                return NULL; /* Unsupported STA-to-STA frame */
                        sta_addr = hdr->addr2;
                        *to_ap = 1;
@@ -184,7 +184,7 @@ static void rx_ack(struct wlantest *wt, const struct ieee80211_hdr *hdr)
        u16 fc;
 
        if (wt->last_len < 24 || (last->addr1[0] & 0x01) ||
-           os_memcmp(hdr->addr1, last->addr2, ETH_ALEN) != 0) {
+           !ether_addr_equal(hdr->addr1, last->addr2)) {
                add_note(wt, MSG_MSGDUMP, "Unknown Ack frame (previous frame "
                         "not seen)");
                return;
index 6dc32cf8f08de0c3899dde582caf3014ce930911..4b0a2244e82b9fe8e6ed8733007c49c67a5951eb 100644 (file)
@@ -588,7 +588,7 @@ static void rx_data_bss_prot(struct wlantest *wt,
                        sta->rx_tid[16]++;
        }
        if (tk) {
-               if (os_memcmp(hdr->addr2, tdls->init->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(hdr->addr2, tdls->init->addr))
                        rsc = tdls->rsc_init[tid];
                else
                        rsc = tdls->rsc_resp[tid];
@@ -641,7 +641,7 @@ skip_replay_det:
                        a2 = sta->mld_mac_addr;
                }
 
-               if (os_memcmp(hdr->addr3, bss->bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(hdr->addr3, bss->bssid))
                        a3 = bss->mld_mac_addr;
        }
 
index c1fe1f22432ba50237838306907a53b6562d7d98..23e082e550cf2f13cc087f619ba97d49e8d29437 100644 (file)
@@ -100,7 +100,7 @@ static void rx_data_eapol_key_1_of_4(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 1/4 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(src, bssid)) {
                bss = bss_get(wt, src);
        } else {
                bss = bss_find(wt, bssid);
@@ -162,8 +162,7 @@ static void rx_data_eapol_key_1_of_4(struct wlantest *wt, const u8 *dst,
                        wpa_printf(MSG_DEBUG,
                                   "Learned AP MLD MAC Address from EAPOL-Key 1/4: "
                                   MACSTR, MAC2STR(ie.mac_addr));
-               } else if (os_memcmp(bss->mld_mac_addr, ie.mac_addr,
-                                    ETH_ALEN) != 0) {
+               } else if (!ether_addr_equal(bss->mld_mac_addr, ie.mac_addr)) {
                        wpa_printf(MSG_DEBUG,
                                   "Updated AP MLD MAC Address from EAPOL-Key 1/4: "
                                   MACSTR " --> " MACSTR,
@@ -357,7 +356,7 @@ static void rx_data_eapol_key_2_of_4(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 2/4 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(dst, bssid)) {
                bss = bss_get(wt, dst);
        } else {
                bss = bss_find(wt, bssid);
@@ -893,7 +892,7 @@ static void learn_kde_keys(struct wlantest *wt, struct wlantest_bss *bss,
                if (!ie.mlo_link[link_id])
                        continue;
                addr = &ie.mlo_link[link_id][RSN_MLO_LINK_KDE_LINK_MAC_INDEX];
-               if (os_memcmp(addr, bss->bssid, ETH_ALEN) == 0) {
+               if (ether_addr_equal(addr, bss->bssid)) {
                        wpa_printf(MSG_DEBUG,
                                   "Trying to learn keys for the current MLO link (ID %u)",
                                   link_id);
@@ -940,7 +939,7 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 3/4 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(src, bssid)) {
                bss = bss_get(wt, src);
        } else {
                bss = bss_find(wt, bssid);
@@ -1106,7 +1105,7 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst,
                if (!ie.mlo_link[link_id])
                        continue;
                addr = &ie.mlo_link[link_id][RSN_MLO_LINK_KDE_LINK_MAC_INDEX];
-               if (os_memcmp(addr, bss->bssid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(addr, bss->bssid))
                        continue;
                if (!(ie.mlo_link[link_id][0] & RSN_MLO_LINK_KDE_LI_RSNE_INFO))
                        continue;
@@ -1172,7 +1171,7 @@ static void rx_data_eapol_key_4_of_4(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 4/4 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(dst, bssid)) {
                bss = bss_get(wt, dst);
        } else {
                bss = bss_find(wt, bssid);
@@ -1243,7 +1242,7 @@ static void rx_data_eapol_key_1_of_2(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 1/2 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(src, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(src, bssid)) {
                bss = bss_get(wt, src);
        } else {
                bss = bss_find(wt, bssid);
@@ -1380,7 +1379,7 @@ static void rx_data_eapol_key_2_of_2(struct wlantest *wt, const u8 *dst,
        wpa_printf(MSG_DEBUG, "EAPOL-Key 2/2 " MACSTR " -> " MACSTR " (BSSID "
                   MACSTR ")",
                   MAC2STR(src), MAC2STR(dst), MAC2STR(bssid));
-       if (os_memcmp(dst, bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(dst, bssid)) {
                bss = bss_get(wt, dst);
        } else {
                bss = bss_find(wt, bssid);
index c6bf65ddf39b95eeb0de3264511c6d68ede256aa..6fa61612c0c28969f3ad57d7649e0adcb7c9b16f 100644 (file)
@@ -572,7 +572,7 @@ static void process_fils_auth(struct wlantest *wt, struct wlantest_bss *bss,
                return;
        }
 
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                os_memcpy(sta->anonce, elems.fils_nonce, FILS_NONCE_LEN);
        else
                os_memcpy(sta->snonce, elems.fils_nonce, FILS_NONCE_LEN);
@@ -717,7 +717,7 @@ static void rx_mgmt_auth(struct wlantest *wt, const u8 *data, size_t len)
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       from_ap = os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0;
+       from_ap = ether_addr_equal(mgmt->sa, mgmt->bssid);
        if (from_ap)
                sta = sta_get(bss, mgmt->da);
        else
@@ -751,7 +751,7 @@ static void rx_mgmt_auth(struct wlantest *wt, const u8 *data, size_t len)
                }
        }
 
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                sta->counters[WLANTEST_STA_COUNTER_AUTH_RX]++;
        else
                sta->counters[WLANTEST_STA_COUNTER_AUTH_TX]++;
@@ -803,7 +803,7 @@ static void rx_mgmt_deauth(struct wlantest *wt, const u8 *data, size_t len,
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                sta = sta_get(bss, mgmt->da);
        else
                sta = sta_get(bss, mgmt->sa);
@@ -827,7 +827,7 @@ static void rx_mgmt_deauth(struct wlantest *wt, const u8 *data, size_t len,
                return;
        }
 
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
                sta->counters[valid ? WLANTEST_STA_COUNTER_VALID_DEAUTH_RX :
                              WLANTEST_STA_COUNTER_INVALID_DEAUTH_RX]++;
                if (sta->pwrmgt && !sta->pspoll)
@@ -2375,7 +2375,7 @@ static void rx_mgmt_disassoc(struct wlantest *wt, const u8 *data, size_t len,
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                sta = sta_get(bss, mgmt->da);
        else
                sta = sta_get(bss, mgmt->sa);
@@ -2399,7 +2399,7 @@ static void rx_mgmt_disassoc(struct wlantest *wt, const u8 *data, size_t len,
                return;
        }
 
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
                sta->counters[valid ? WLANTEST_STA_COUNTER_VALID_DISASSOC_RX :
                              WLANTEST_STA_COUNTER_INVALID_DISASSOC_RX]++;
                if (sta->pwrmgt && !sta->pspoll)
@@ -2620,7 +2620,7 @@ static void rx_mgmt_action_sa_query_req(struct wlantest *wt,
        u8 *id;
 
        rx_id = (const u8 *) mgmt->u.action.u.sa_query_req.trans_id;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                id = sta->ap_sa_query_tr;
        else
                id = sta->sta_sa_query_tr;
@@ -2629,7 +2629,7 @@ static void rx_mgmt_action_sa_query_req(struct wlantest *wt,
                 MAC2STR(mgmt->sa), MAC2STR(mgmt->da), rx_id[0], rx_id[1],
                 valid ? "" : " (invalid protection)");
        os_memcpy(id, mgmt->u.action.u.sa_query_req.trans_id, 2);
-       if (os_memcmp(mgmt->sa, sta->addr, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, sta->addr))
                sta->counters[valid ?
                              WLANTEST_STA_COUNTER_VALID_SAQUERYREQ_TX :
                              WLANTEST_STA_COUNTER_INVALID_SAQUERYREQ_TX]++;
@@ -2650,7 +2650,7 @@ static void rx_mgmt_action_sa_query_resp(struct wlantest *wt,
        int match;
 
        rx_id = (const u8 *) mgmt->u.action.u.sa_query_resp.trans_id;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                id = sta->sta_sa_query_tr;
        else
                id = sta->ap_sa_query_tr;
@@ -2660,7 +2660,7 @@ static void rx_mgmt_action_sa_query_resp(struct wlantest *wt,
                 MAC2STR(mgmt->sa), MAC2STR(mgmt->da), rx_id[0], rx_id[1],
                 match ? "match" : "mismatch",
                 valid ? "" : " (invalid protection)");
-       if (os_memcmp(mgmt->sa, sta->addr, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, sta->addr))
                sta->counters[(valid && match) ?
                              WLANTEST_STA_COUNTER_VALID_SAQUERYRESP_TX :
                              WLANTEST_STA_COUNTER_INVALID_SAQUERYRESP_TX]++;
@@ -2862,7 +2862,7 @@ static void rx_mgmt_action(struct wlantest *wt, const u8 *data, size_t len,
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
                sta = sta_find_mlo(wt, bss, mgmt->da);
                if (!sta)
                        sta = sta_get(bss, mgmt->da);
@@ -3176,7 +3176,7 @@ static u8 * mgmt_decrypt(struct wlantest *wt, const u8 *data, size_t len,
        bss = bss_get(wt, hdr->addr3);
        if (bss == NULL)
                return mgmt_decrypt_tk(wt, data, len, dlen);
-       if (os_memcmp(hdr->addr1, hdr->addr3, ETH_ALEN) == 0) {
+       if (ether_addr_equal(hdr->addr1, hdr->addr3)) {
                sta = sta_find_mlo(wt, bss, hdr->addr2);
                if (!sta)
                        sta = sta_get(bss, hdr->addr2);
@@ -3193,7 +3193,7 @@ static u8 * mgmt_decrypt(struct wlantest *wt, const u8 *data, size_t len,
                return decrypted;
        }
 
-       if (os_memcmp(hdr->addr1, hdr->addr3, ETH_ALEN) == 0)
+       if (ether_addr_equal(hdr->addr1, hdr->addr3))
                rsc = sta->rsc_tods[16];
        else
                rsc = sta->rsc_fromds[16];
@@ -3288,7 +3288,7 @@ static int check_mgmt_ccmp_gcmp(struct wlantest *wt, const u8 *data, size_t len)
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return 0;
-       if (os_memcmp(mgmt->da, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->da, mgmt->bssid))
                sta = sta_get(bss, mgmt->sa);
        else
                sta = sta_get(bss, mgmt->da);
@@ -3425,7 +3425,7 @@ static void rx_mgmt_deauth_ack(struct wlantest *wt,
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                sta = sta_get(bss, mgmt->da);
        else
                sta = sta_get(bss, mgmt->sa);
@@ -3434,7 +3434,7 @@ static void rx_mgmt_deauth_ack(struct wlantest *wt,
 
        add_note(wt, MSG_DEBUG, "DEAUTH from " MACSTR " acknowledged by "
                 MACSTR, MAC2STR(mgmt->sa), MAC2STR(mgmt->da));
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
                int c;
                c = wt->last_mgmt_valid ?
                        WLANTEST_STA_COUNTER_VALID_DEAUTH_RX_ACK :
@@ -3455,7 +3455,7 @@ static void rx_mgmt_disassoc_ack(struct wlantest *wt,
        bss = bss_get(wt, mgmt->bssid);
        if (bss == NULL)
                return;
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid))
                sta = sta_get(bss, mgmt->da);
        else
                sta = sta_get(bss, mgmt->sa);
@@ -3464,7 +3464,7 @@ static void rx_mgmt_disassoc_ack(struct wlantest *wt,
 
        add_note(wt, MSG_DEBUG, "DISASSOC from " MACSTR " acknowledged by "
                 MACSTR, MAC2STR(mgmt->sa), MAC2STR(mgmt->da));
-       if (os_memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN) == 0) {
+       if (ether_addr_equal(mgmt->sa, mgmt->bssid)) {
                int c;
                c = wt->last_mgmt_valid ?
                        WLANTEST_STA_COUNTER_VALID_DISASSOC_RX_ACK :
index dc23e545741e94b5bc6a007e05e1dd2c0986ebf6..eb46dc5c6a37893f52dba65ea5ba52a954d54368 100644 (file)
@@ -20,7 +20,7 @@ struct wlantest_sta * sta_find(struct wlantest_bss *bss, const u8 *addr)
        struct wlantest_sta *sta;
 
        dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
-               if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(sta->addr, addr))
                        return sta;
        }
 
@@ -36,9 +36,9 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
        int link_id;
 
        dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
-               if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(sta->addr, addr))
                        return sta;
-               if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(sta->mld_mac_addr, addr))
                        return sta;
        }
 
@@ -47,8 +47,7 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
 
        dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) {
                for (link_id = 0; link_id < MAX_NUM_MLO_LINKS; link_id++) {
-                       if (os_memcmp(sta->link_addr[link_id], addr,
-                                     ETH_ALEN) == 0)
+                       if (ether_addr_equal(sta->link_addr[link_id], addr))
                                return sta;
                }
        }
@@ -57,18 +56,17 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
                if (obss == bss)
                        continue;
                if (!is_zero_ether_addr(bss->mld_mac_addr) &&
-                   os_memcmp(obss->mld_mac_addr, bss->mld_mac_addr,
-                             ETH_ALEN) != 0)
+                   !ether_addr_equal(obss->mld_mac_addr, bss->mld_mac_addr))
                        continue;
                dl_list_for_each(sta, &obss->sta, struct wlantest_sta, list) {
-                       if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
+                       if (ether_addr_equal(sta->addr, addr))
                                return sta;
-                       if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
+                       if (ether_addr_equal(sta->mld_mac_addr, addr))
                                return sta;
                        for (link_id = 0; link_id < MAX_NUM_MLO_LINKS;
                             link_id++) {
-                               if (os_memcmp(sta->link_addr[link_id], addr,
-                                             ETH_ALEN) == 0)
+                               if (ether_addr_equal(sta->link_addr[link_id],
+                                                    addr))
                                        return sta;
                        }
                }
@@ -336,19 +334,19 @@ void sta_new_ptk(struct wlantest *wt, struct wlantest_sta *sta,
 
                        if (osta == sta)
                                continue;
-                       if (os_memcmp(sta->addr, osta->addr, ETH_ALEN) == 0)
+                       if (ether_addr_equal(sta->addr, osta->addr))
                                match = true;
                        for (link_id = 0; !match && link_id < MAX_NUM_MLO_LINKS;
                             link_id++) {
-                               if (os_memcmp(osta->link_addr[link_id],
-                                             sta->addr, ETH_ALEN) == 0)
+                               if (ether_addr_equal(osta->link_addr[link_id],
+                                                    sta->addr))
                                        match = true;
                        }
 
                        if (!match)
                                continue;
-                       if (os_memcmp(sta->bss->mld_mac_addr,
-                                     osta->bss->mld_mac_addr, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(sta->bss->mld_mac_addr,
+                                             osta->bss->mld_mac_addr))
                                continue;
                        wpa_printf(MSG_DEBUG,
                                   "Add PTK to another MLO STA entry " MACSTR
index 201561150c654255a87d7c0f766d9e8c4cc03406..b9628d09673a2f09439225096e819b165eaeb3dc 100644 (file)
@@ -362,8 +362,8 @@ u8 * tkip_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr,
 
                if (frag->buf && (fn || (fc & WLAN_FC_MOREFRAG)) &&
                    sn == frag->sn && fn == frag->fn + 1 &&
-                   os_memcmp(frag->ra, hdr->addr1, ETH_ALEN) == 0 &&
-                   os_memcmp(frag->ta, hdr->addr2, ETH_ALEN) == 0) {
+                   ether_addr_equal(frag->ra, hdr->addr1) &&
+                   ether_addr_equal(frag->ta, hdr->addr2)) {
                        /* Add the next fragment */
                        if (wpabuf_resize(&frag->buf, plain_len) == 0) {
                                wpabuf_put_data(frag->buf, plain, plain_len);
index 9830c4aa16e1c3ed1ac6a3f782a90eab36e4d04a..cab4ae2ac77ced2e065d4cab3146d9715d634f27 100644 (file)
@@ -57,7 +57,7 @@ static int bssid_in_array(u8 *array, size_t array_len, const u8 *bssid)
                return 0;
 
        for (i = 0; i < array_len; i++) {
-               if (os_memcmp(array + i * ETH_ALEN, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(array + i * ETH_ALEN, bssid))
                        return 1;
        }
 
@@ -70,7 +70,7 @@ static void bgscan_learn_add_neighbor(struct bgscan_learn_bss *bss,
 {
        u8 *n;
 
-       if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+       if (ether_addr_equal(bss->bssid, bssid))
                return;
        if (bssid_in_array(bss->neigh, bss->num_neigh, bssid))
                return;
@@ -91,7 +91,7 @@ static struct bgscan_learn_bss * bgscan_learn_get_bss(
        struct bgscan_learn_bss *bss;
 
        dl_list_for_each(bss, &data->bss, struct bgscan_learn_bss, list) {
-               if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(bss->bssid, bssid))
                        return bss;
        }
        return NULL;
index ae71d2777b59090e52a242c4d84afca974735e05..2f3b2794a211a2c1e086abdbeaefde57ca61b246 100644 (file)
@@ -265,7 +265,7 @@ struct wpa_bss * wpa_bss_get(struct wpa_supplicant *wpa_s, const u8 *bssid,
        if (bssid && !wpa_supplicant_filter_bssid_match(wpa_s, bssid))
                return NULL;
        dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
-               if ((!bssid || os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0) &&
+               if ((!bssid || ether_addr_equal(bss->bssid, bssid)) &&
                    bss->ssid_len == ssid_len &&
                    os_memcmp(bss->ssid, ssid, ssid_len) == 0)
                        return bss;
@@ -360,12 +360,11 @@ static bool is_p2p_pending_bss(struct wpa_supplicant *wpa_s,
 #ifdef CONFIG_P2P
        u8 addr[ETH_ALEN];
 
-       if (os_memcmp(bss->bssid, wpa_s->pending_join_iface_addr,
-                     ETH_ALEN) == 0)
+       if (ether_addr_equal(bss->bssid, wpa_s->pending_join_iface_addr))
                return true;
        if (!is_zero_ether_addr(wpa_s->pending_join_dev_addr) &&
            p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len, addr) == 0 &&
-           os_memcmp(addr, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0)
+           ether_addr_equal(addr, wpa_s->pending_join_dev_addr))
                return true;
 #endif /* CONFIG_P2P */
        return false;
@@ -408,8 +407,8 @@ static int wpa_bss_in_use(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
                return 0; /* SSID has changed */
 
        if (!is_zero_ether_addr(bss->bssid) &&
-           (os_memcmp(bss->bssid, wpa_s->bssid, ETH_ALEN) == 0 ||
-            os_memcmp(bss->bssid, wpa_s->pending_bssid, ETH_ALEN) == 0))
+           (ether_addr_equal(bss->bssid, wpa_s->bssid) ||
+            ether_addr_equal(bss->bssid, wpa_s->pending_bssid)))
                return 1;
 
        if (!wpa_s->valid_links)
@@ -419,7 +418,7 @@ static int wpa_bss_in_use(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
                if (!(wpa_s->valid_links & BIT(i)))
                        continue;
 
-               if (os_memcmp(bss->bssid, wpa_s->links[i].bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(bss->bssid, wpa_s->links[i].bssid))
                        return 1;
        }
 
@@ -1104,7 +1103,7 @@ struct wpa_bss * wpa_bss_get_bssid(struct wpa_supplicant *wpa_s,
        if (!wpa_supplicant_filter_bssid_match(wpa_s, bssid))
                return NULL;
        dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
-               if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(bss->bssid, bssid))
                        return bss;
        }
        return NULL;
@@ -1129,7 +1128,7 @@ struct wpa_bss * wpa_bss_get_bssid_latest(struct wpa_supplicant *wpa_s,
        if (!wpa_supplicant_filter_bssid_match(wpa_s, bssid))
                return NULL;
        dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
-               if (os_memcmp(bss->bssid, bssid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(bss->bssid, bssid))
                        continue;
                if (found == NULL ||
                    os_reltime_before(&found->last_update, &bss->last_update))
@@ -1158,7 +1157,7 @@ struct wpa_bss * wpa_bss_get_p2p_dev_addr(struct wpa_supplicant *wpa_s,
                u8 addr[ETH_ALEN];
                if (p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len,
                                       addr) != 0 ||
-                   os_memcmp(addr, dev_addr, ETH_ALEN) != 0)
+                   !ether_addr_equal(addr, dev_addr))
                        continue;
                if (!found ||
                    os_reltime_before(&found->last_update, &bss->last_update))
index c837c51787e829234fa1f8a30f346661560f541d..ab16fc5da34bd59e5e5f8e86b6d8891bcd649480 100644 (file)
@@ -37,7 +37,7 @@ struct wpa_bssid_ignore * wpa_bssid_ignore_get(struct wpa_supplicant *wpa_s,
 
        e = wpa_s->bssid_ignore;
        while (e) {
-               if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(e->bssid, bssid))
                        return e;
                e = e->next;
        }
@@ -123,7 +123,7 @@ int wpa_bssid_ignore_del(struct wpa_supplicant *wpa_s, const u8 *bssid)
 
        e = wpa_s->bssid_ignore;
        while (e) {
-               if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0) {
+               if (ether_addr_equal(e->bssid, bssid)) {
                        if (prev == NULL) {
                                wpa_s->bssid_ignore = e->next;
                        } else {
index 1aff67be2128f53ab39e4b2a019c4447d5bf226d..fca4320a19f2a163841b75df327c373fc3fd2561 100644 (file)
@@ -2368,7 +2368,7 @@ static int wpa_config_parse_mac_value(const struct parse_data *data,
        u8 mac_value[ETH_ALEN];
 
        if (hwaddr_aton(value, mac_value) == 0) {
-               if (os_memcmp(mac_value, ssid->mac_value, ETH_ALEN) == 0)
+               if (ether_addr_equal(mac_value, ssid->mac_value))
                        return 1;
                os_memcpy(ssid->mac_value, mac_value, ETH_ALEN);
                return 0;
index b67b3b305ce130d7274f7212a0bff2a61d49ddc7..fed6b6c4da3fc56ffaa3ecebf803834225cf8f59 100644 (file)
@@ -445,7 +445,7 @@ static int wpas_ctrl_iface_set_dso(struct wpa_supplicant *wpa_s,
 
        dl_list_for_each(tmp, &wpa_s->drv_signal_override,
                         struct driver_signal_override, list) {
-               if (os_memcmp(bssid, tmp->bssid, ETH_ALEN) == 0) {
+               if (ether_addr_equal(bssid, tmp->bssid)) {
                        dso = tmp;
                        break;
                }
@@ -3691,7 +3691,7 @@ static int wpa_supplicant_ctrl_iface_set_network(
                                                       value);
        if (ret == 0 &&
            (ssid->bssid_set != prev_bssid_set ||
-            os_memcmp(ssid->bssid, prev_bssid, ETH_ALEN) != 0))
+            !ether_addr_equal(ssid->bssid, prev_bssid)))
                wpas_notify_network_bssid_set_changed(wpa_s, ssid);
 
        if (prev_disabled != ssid->disabled &&
@@ -7822,7 +7822,7 @@ static int ctrl_interworking_connect(struct wpa_supplicant *wpa_s, char *dst,
 
                dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss,
                                         list) {
-                       if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0 &&
+                       if (ether_addr_equal(bss->bssid, bssid) &&
                            bss->ssid_len > 0) {
                                found = 1;
                                break;
@@ -7989,11 +7989,11 @@ static int gas_response_get(struct wpa_supplicant *wpa_s, char *cmd, char *buf,
        dialog_token = atoi(pos);
 
        if (wpa_s->last_gas_resp &&
-           os_memcmp(addr, wpa_s->last_gas_addr, ETH_ALEN) == 0 &&
+           ether_addr_equal(addr, wpa_s->last_gas_addr) &&
            dialog_token == wpa_s->last_gas_dialog_token)
                resp = wpa_s->last_gas_resp;
        else if (wpa_s->prev_gas_resp &&
-                os_memcmp(addr, wpa_s->prev_gas_addr, ETH_ALEN) == 0 &&
+                ether_addr_equal(addr, wpa_s->prev_gas_addr) &&
                 dialog_token == wpa_s->prev_gas_dialog_token)
                resp = wpa_s->prev_gas_resp;
        else
index 4dd6a2ce1e567bbadbebc342abebe28e672299ad..a0505aa913f2f4e0141de28645dad4ee6e1cc4a6 100644 (file)
@@ -1782,7 +1782,7 @@ static void wpas_dpp_gas_resp_cb(void *ctx, const u8 *addr, u8 dialog_token,
        wpa_s->dpp_gas_dialog_token = -1;
 
        if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
-           os_memcmp(addr, auth->peer_mac_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(addr, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: No matching exchange in progress");
                return;
        }
@@ -1999,7 +1999,7 @@ static void wpas_dpp_rx_auth_resp(struct wpa_supplicant *wpa_s, const u8 *src,
        }
 
        if (!is_zero_ether_addr(auth->peer_mac_addr) &&
-           os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -2053,7 +2053,7 @@ static void wpas_dpp_rx_auth_conf(struct wpa_supplicant *wpa_s, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -2154,7 +2154,7 @@ static void wpas_dpp_rx_conf_result(struct wpa_supplicant *wpa_s, const u8 *src,
 
        if (!auth || !auth->waiting_conf_result) {
                if (auth &&
-                   os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) == 0 &&
+                   ether_addr_equal(src, auth->peer_mac_addr) &&
                    gas_server_response_sent(wpa_s->gas_server,
                                             auth->gas_server_ctx)) {
                        /* This could happen if the TX status event gets delayed
@@ -2171,7 +2171,7 @@ static void wpas_dpp_rx_conf_result(struct wpa_supplicant *wpa_s, const u8 *src,
                }
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -2580,7 +2580,7 @@ wpas_dpp_rx_reconfig_auth_resp(struct wpa_supplicant *wpa_s, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -2624,7 +2624,7 @@ wpas_dpp_rx_reconfig_auth_conf(struct wpa_supplicant *wpa_s, const u8 *src,
                return;
        }
 
-       if (os_memcmp(src, auth->peer_mac_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(src, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: MAC address mismatch (expected "
                           MACSTR ") - drop", MAC2STR(auth->peer_mac_addr));
                return;
@@ -2662,7 +2662,7 @@ static void wpas_dpp_rx_peer_disc_resp(struct wpa_supplicant *wpa_s,
        wpa_printf(MSG_DEBUG, "DPP: Peer Discovery Response from " MACSTR,
                   MAC2STR(src));
        if (is_zero_ether_addr(wpa_s->dpp_intro_bssid) ||
-           os_memcmp(src, wpa_s->dpp_intro_bssid, ETH_ALEN) != 0) {
+           !ether_addr_equal(src, wpa_s->dpp_intro_bssid)) {
                wpa_printf(MSG_DEBUG, "DPP: Not waiting for response from "
                           MACSTR " - drop", MAC2STR(src));
                return;
@@ -3826,7 +3826,7 @@ wpas_dpp_rx_priv_peer_intro_notify(struct wpa_supplicant *wpa_s,
        wpa_printf(MSG_DEBUG, "DPP: Private Peer Introduction Notify from "
                   MACSTR, MAC2STR(src));
        if (is_zero_ether_addr(wpa_s->dpp_intro_bssid) ||
-           os_memcmp(src, wpa_s->dpp_intro_bssid, ETH_ALEN) != 0) {
+           !ether_addr_equal(src, wpa_s->dpp_intro_bssid)) {
                wpa_printf(MSG_DEBUG, "DPP: Not waiting for response from "
                           MACSTR " - drop", MAC2STR(src));
                return;
@@ -4117,7 +4117,7 @@ wpas_dpp_gas_req_handler(void *ctx, void *resp_ctx, const u8 *sa,
        wpa_printf(MSG_DEBUG, "DPP: GAS request from " MACSTR,
                   MAC2STR(sa));
        if (!auth || (!auth->auth_success && !auth->reconfig_success) ||
-           os_memcmp(sa, auth->peer_mac_addr, ETH_ALEN) != 0) {
+           !ether_addr_equal(sa, auth->peer_mac_addr)) {
                wpa_printf(MSG_DEBUG, "DPP: No matching exchange in progress");
                return NULL;
        }
index d56703f6f71297097691e8834f2f93124a8eadca..6dddcf116205787f40cb5dfe715fbfde44e71620 100644 (file)
@@ -1307,7 +1307,7 @@ static bool wpa_scan_res_ok(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
 #endif /* CONFIG_WPS */
 
        if (ssid->bssid_set && ssid->ssid_len == 0 &&
-           os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) == 0)
+           ether_addr_equal(bss->bssid, ssid->bssid))
                check_ssid = false;
 
        if (check_ssid &&
@@ -1319,7 +1319,7 @@ static bool wpa_scan_res_ok(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
        }
 
        if (ssid->bssid_set &&
-           os_memcmp(bss->bssid, ssid->bssid, ETH_ALEN) != 0) {
+           !ether_addr_equal(bss->bssid, ssid->bssid)) {
                if (debug_print)
                        wpa_dbg(wpa_s, MSG_DEBUG, "   skip - BSSID mismatch");
                return false;
@@ -1485,7 +1485,7 @@ static bool wpa_scan_res_ok(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
                }
 
                if (p2p_parse_dev_addr_in_p2p_ie(p2p_ie, dev_addr) < 0 ||
-                   os_memcmp(dev_addr, ssid->go_p2p_dev_addr, ETH_ALEN) != 0) {
+                   !ether_addr_equal(dev_addr, ssid->go_p2p_dev_addr)) {
                        if (debug_print)
                                wpa_dbg(wpa_s, MSG_DEBUG,
                                        "   skip - no matching GO P2P Device Address in P2P element");
@@ -2010,12 +2010,11 @@ int wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
         * the selected BSSID, do not trigger new attempt.
         */
        if (wpa_s->reassociate ||
-           (os_memcmp(selected->bssid, wpa_s->bssid, ETH_ALEN) != 0 &&
+           (!ether_addr_equal(selected->bssid, wpa_s->bssid) &&
             ((wpa_s->wpa_state != WPA_ASSOCIATING &&
               wpa_s->wpa_state != WPA_AUTHENTICATING) ||
              (!is_zero_ether_addr(wpa_s->pending_bssid) &&
-              os_memcmp(selected->bssid, wpa_s->pending_bssid, ETH_ALEN) !=
-              0) ||
+              !ether_addr_equal(selected->bssid, wpa_s->pending_bssid)) ||
              (is_zero_ether_addr(wpa_s->pending_bssid) &&
               ssid != wpa_s->current_ssid)))) {
                if (wpa_supplicant_scard_init(wpa_s, ssid)) {
@@ -2158,8 +2157,7 @@ int wpa_supplicant_need_to_roam_within_ess(struct wpa_supplicant *wpa_s,
                selected->snr, selected->est_throughput);
 
        if (wpa_s->current_ssid->bssid_set &&
-           os_memcmp(selected->bssid, wpa_s->current_ssid->bssid, ETH_ALEN) ==
-           0) {
+           ether_addr_equal(selected->bssid, wpa_s->current_ssid->bssid)) {
                wpa_dbg(wpa_s, MSG_DEBUG, "Allow reassociation - selected BSS "
                        "has preferred BSSID");
                return 1;
@@ -3777,8 +3775,7 @@ static unsigned int wpas_ml_parse_assoc(struct wpa_supplicant *wpa_s,
        wpa_printf(MSG_DEBUG, "MLD: address: " MACSTR,
                   MAC2STR(common_info->mld_addr));
 
-       if (os_memcmp(wpa_s->ap_mld_addr, common_info->mld_addr, ETH_ALEN) !=
-           0) {
+       if (!ether_addr_equal(wpa_s->ap_mld_addr, common_info->mld_addr)) {
                wpa_printf(MSG_DEBUG, "MLD: Mismatching MLD address (expected "
                           MACSTR ")", MAC2STR(wpa_s->ap_mld_addr));
                goto out;
@@ -3976,18 +3973,17 @@ static int wpa_drv_get_mlo_info(struct wpa_supplicant *wpa_s)
                        if (!(mlo.valid_links & BIT(i)))
                                continue;
 
-                       if (os_memcmp(wpa_s->links[i].addr, mlo.links[i].addr,
-                                     ETH_ALEN) != 0 ||
-                           os_memcmp(wpa_s->links[i].bssid, mlo.links[i].bssid,
-                                     ETH_ALEN) != 0) {
+                       if (!ether_addr_equal(wpa_s->links[i].addr,
+                                             mlo.links[i].addr) ||
+                           !ether_addr_equal(wpa_s->links[i].bssid,
+                                             mlo.links[i].bssid)) {
                                match = false;
                                break;
                        }
                }
 
                if (match && wpa_s->mlo_assoc_link_id == mlo.assoc_link_id &&
-                   os_memcmp(wpa_s->ap_mld_addr, mlo.ap_mld_addr,
-                             ETH_ALEN) == 0)
+                   ether_addr_equal(wpa_s->ap_mld_addr, mlo.ap_mld_addr))
                        return 0;
        }
 
@@ -4133,7 +4129,7 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
                ft_completed = wpa_fils_is_completed(wpa_s->wpa);
 
        wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATED);
-       if (os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(bssid, wpa_s->bssid)) {
                if (os_reltime_initialized(&wpa_s->session_start)) {
                        os_reltime_age(&wpa_s->session_start,
                                       &wpa_s->session_length);
@@ -4317,9 +4313,9 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
                os_get_reltime(&now);
                os_reltime_sub(&now, &wpa_s->pending_eapol_rx_time, &age);
                if (age.sec == 0 && age.usec < 200000 &&
-                   os_memcmp(wpa_s->pending_eapol_rx_src,
-                             wpa_s->valid_links ? wpa_s->ap_mld_addr : bssid,
-                             ETH_ALEN) == 0) {
+                   ether_addr_equal(wpa_s->pending_eapol_rx_src,
+                                    wpa_s->valid_links ? wpa_s->ap_mld_addr :
+                                    bssid)) {
                        wpa_dbg(wpa_s, MSG_DEBUG, "Process pending EAPOL "
                                "frame that was received just before "
                                "association notification");
@@ -4916,7 +4912,7 @@ static void ft_rx_action(struct wpa_supplicant *wpa_s, const u8 *data,
                MACSTR " TargetAP " MACSTR " status %u",
                MAC2STR(sta_addr), MAC2STR(target_ap_addr), status);
 
-       if (os_memcmp(sta_addr, wpa_s->own_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sta_addr, wpa_s->own_addr)) {
                wpa_dbg(wpa_s, MSG_DEBUG, "FT: Foreign STA Address " MACSTR
                        " in FT Action Response", MAC2STR(sta_addr));
                return;
@@ -5314,7 +5310,7 @@ static void wpas_event_rx_mgmt_action(struct wpa_supplicant *wpa_s,
                size_t qlen = plen - 1;
                wpa_dbg(wpa_s, MSG_DEBUG, "Interworking: Received QoS Map Configure frame from "
                        MACSTR, MAC2STR(mgmt->sa));
-               if (os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(mgmt->sa, wpa_s->bssid) &&
                    qlen > 2 && pos[0] == WLAN_EID_QOS_MAP_SET &&
                    pos[1] <= qlen - 2 && pos[1] >= 16)
                        wpas_qos_map_set(wpa_s, pos + 2, pos[1]);
@@ -5795,7 +5791,7 @@ static void wpas_event_unprot_beacon(struct wpa_supplicant *wpa_s,
        int res;
 
        if (!data || wpa_s->wpa_state != WPA_COMPLETED ||
-           os_memcmp(data->sa, wpa_s->bssid, ETH_ALEN) != 0)
+           !ether_addr_equal(data->sa, wpa_s->bssid))
                return;
        wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_UNPROT_BEACON MACSTR,
                MAC2STR(data->sa));
@@ -5884,7 +5880,7 @@ static void wpas_link_reconfig(struct wpa_supplicant *wpa_s)
                return;
        }
 
-       if (os_memcmp(bssid, wpa_s->bssid, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(bssid, wpa_s->bssid)) {
                os_memcpy(wpa_s->bssid, bssid, ETH_ALEN);
                wpa_supplicant_update_current_bss(wpa_s, wpa_s->bssid);
                wpas_notify_bssid_changed(wpa_s);
@@ -6168,8 +6164,8 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                 */
                if (data->tx_status.type == WLAN_FC_TYPE_MGMT &&
                    data->tx_status.stype == WLAN_FC_STYPE_ACTION &&
-                   os_memcmp(wpa_s->p2pdev->pending_action_dst,
-                             data->tx_status.dst, ETH_ALEN) == 0) {
+                   ether_addr_equal(wpa_s->p2pdev->pending_action_dst,
+                                    data->tx_status.dst)) {
                        offchannel_send_action_tx_status(
                                wpa_s->p2pdev, data->tx_status.dst,
                                data->tx_status.data,
@@ -6536,7 +6532,7 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                                             wpa_s, NULL);
                        os_memcpy(addr, wpa_s->own_addr, ETH_ALEN);
                        wpa_supplicant_update_mac_addr(wpa_s);
-                       if (os_memcmp(addr, wpa_s->own_addr, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(addr, wpa_s->own_addr))
                                wpa_sm_pmksa_cache_flush(wpa_s->wpa, NULL);
                        else
                                wpa_sm_pmksa_cache_reconfig(wpa_s->wpa);
@@ -6670,8 +6666,8 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
 #endif /* CONFIG_IBSS_RSN */
                break;
        case EVENT_DRIVER_GTK_REKEY:
-               if (os_memcmp(data->driver_gtk_rekey.bssid,
-                             wpa_s->bssid, ETH_ALEN))
+               if (!ether_addr_equal(data->driver_gtk_rekey.bssid,
+                                     wpa_s->bssid))
                        break;
                if (!wpa_s->wpa)
                        break;
index 0cebe8c10e9d12c6d50384e8b5d460635d4a03c2..7d29931796604925422eff1434f4bbead7f34926 100644 (file)
@@ -202,11 +202,11 @@ gas_query_get_pending(struct gas_query *gas, const u8 *addr, u8 dialog_token)
        struct wpa_supplicant *wpa_s = gas->wpa_s;
 
        dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
-               if (os_memcmp(q->addr, addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(q->addr, addr) &&
                    q->dialog_token == dialog_token)
                        return q;
                if (wpa_s->valid_links &&
-                   os_memcmp(wpa_s->ap_mld_addr, addr, ETH_ALEN) == 0 &&
+                   ether_addr_equal(wpa_s->ap_mld_addr, addr) &&
                    wpas_ap_link_address(wpa_s, q->addr))
                        return q;
        }
@@ -249,7 +249,7 @@ static void gas_query_tx_status(struct wpa_supplicant *wpa_s,
        wpa_printf(MSG_DEBUG, "GAS: TX status: freq=%u dst=" MACSTR
                   " result=%d query=%p dialog_token=%u dur=%d ms",
                   freq, MAC2STR(dst), result, query, query->dialog_token, dur);
-       if (os_memcmp(dst, query->addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(dst, query->addr)) {
                wpa_printf(MSG_DEBUG, "GAS: TX status for unexpected destination");
                return;
        }
@@ -306,7 +306,7 @@ static int gas_query_tx(struct gas_query *gas, struct gas_query_pending *query,
            (!gas->wpa_s->conf->gas_address3 ||
             (gas->wpa_s->current_ssid &&
              gas->wpa_s->wpa_state >= WPA_ASSOCIATED &&
-             os_memcmp(query->addr, gas->wpa_s->bssid, ETH_ALEN) == 0)))
+             ether_addr_equal(query->addr, gas->wpa_s->bssid))))
                bssid = query->addr;
        else
                bssid = wildcard_bssid;
@@ -674,7 +674,7 @@ static int gas_query_dialog_token_available(struct gas_query *gas,
 {
        struct gas_query_pending *q;
        dl_list_for_each(q, &gas->pending, struct gas_query_pending, list) {
-               if (os_memcmp(dst, q->addr, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(dst, q->addr) &&
                    dialog_token == q->dialog_token)
                        return 0;
        }
index 272f2be5382176ad9c3ed670c736d474cacc4d4a..4a25753a000f3fbad75693f7373fcbb087ac6bc1 100644 (file)
@@ -324,7 +324,7 @@ static struct icon_entry * hs20_find_icon(struct wpa_supplicant *wpa_s,
        struct icon_entry *icon;
 
        dl_list_for_each(icon, &wpa_s->icon_head, struct icon_entry, list) {
-               if (os_memcmp(icon->bssid, bssid, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(icon->bssid, bssid) &&
                    os_strcmp(icon->file_name, file_name) == 0 && icon->image)
                        return icon;
        }
@@ -400,7 +400,7 @@ int hs20_del_icon(struct wpa_supplicant *wpa_s, const u8 *bssid,
 
        dl_list_for_each_safe(icon, tmp, &wpa_s->icon_head, struct icon_entry,
                              list) {
-               if ((!bssid || os_memcmp(icon->bssid, bssid, ETH_ALEN) == 0) &&
+               if ((!bssid || ether_addr_equal(icon->bssid, bssid)) &&
                    (!file_name ||
                     os_strcmp(icon->file_name, file_name) == 0)) {
                        dl_list_del(&icon->list);
@@ -446,7 +446,7 @@ static void hs20_remove_duplicate_icons(struct wpa_supplicant *wpa_s,
                              list) {
                if (icon == new_icon)
                        continue;
-               if (os_memcmp(icon->bssid, new_icon->bssid, ETH_ALEN) == 0 &&
+               if (ether_addr_equal(icon->bssid, new_icon->bssid) &&
                    os_strcmp(icon->file_name, new_icon->file_name) == 0) {
                        dl_list_del(&icon->list);
                        hs20_free_icon_entry(icon);
@@ -467,7 +467,7 @@ static int hs20_process_icon_binary_file(struct wpa_supplicant *wpa_s,
 
        dl_list_for_each(icon, &wpa_s->icon_head, struct icon_entry, list) {
                if (icon->dialog_token == dialog_token && !icon->image &&
-                   os_memcmp(icon->bssid, sa, ETH_ALEN) == 0) {
+                   ether_addr_equal(icon->bssid, sa)) {
                        icon->image = os_memdup(pos, slen);
                        if (!icon->image)
                                return -1;
index 5b31f7bb0e3d79ba64f8b2253b45c6e76a77f230..554268a47f55d7c026f624db0b44d687c85cdf11 100644 (file)
@@ -30,7 +30,7 @@ static struct ibss_rsn_peer * ibss_rsn_get_peer(struct ibss_rsn *ibss_rsn,
        struct ibss_rsn_peer *peer;
 
        for (peer = ibss_rsn->peers; peer; peer = peer->next)
-               if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(addr, peer->addr))
                        break;
        return peer;
 }
@@ -672,7 +672,7 @@ void ibss_rsn_stop(struct ibss_rsn *ibss_rsn, const u8 *peermac)
 
                for (prev = NULL, peer = ibss_rsn->peers; peer != NULL;
                     prev = peer, peer = peer->next) {
-                       if (os_memcmp(peermac, peer->addr, ETH_ALEN) == 0) {
+                       if (ether_addr_equal(peermac, peer->addr)) {
                                if (prev == NULL)
                                        ibss_rsn->peers = peer->next;
                                else
index e33f3617ac08ab22a3578654d3fa5e3d955dd02c..3c6e9f17bd52bdc58b221e34516f642a6155d6af 100644 (file)
@@ -2666,7 +2666,7 @@ interworking_match_anqp_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
                        continue;
                if (!(other->flags & WPA_BSS_ANQP_FETCH_TRIED))
                        continue;
-               if (os_memcmp(bss->hessid, other->hessid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(bss->hessid, other->hessid))
                        continue;
                if (bss->ssid_len != other->ssid_len ||
                    os_memcmp(bss->ssid, other->ssid, bss->ssid_len) != 0)
@@ -3161,7 +3161,7 @@ void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
         */
        dl_list_for_each_reverse(tmp, &wpa_s->bss, struct wpa_bss, list) {
                if (tmp == wpa_s->interworking_gas_bss &&
-                   os_memcmp(tmp->bssid, dst, ETH_ALEN) == 0) {
+                   ether_addr_equal(tmp->bssid, dst)) {
                        bss = tmp;
                        break;
                }
index 41707759eed922bf253d6ca02701f40e04284547..b2fc1271ea5a106738543e72f0359efd60e95a66 100644 (file)
@@ -854,7 +854,7 @@ void wpa_mesh_new_mesh_peer(struct wpa_supplicant *wpa_s, const u8 *addr,
 
        if (ssid && ssid->no_auto_peer &&
            (is_zero_ether_addr(data->mesh_required_peer) ||
-            os_memcmp(data->mesh_required_peer, addr, ETH_ALEN) != 0)) {
+            !ether_addr_equal(data->mesh_required_peer, addr))) {
                wpa_msg(wpa_s, MSG_INFO, "will not initiate new peer link with "
                        MACSTR " because of no_auto_peer", MAC2STR(addr));
                if (data->mesh_pending_auth) {
@@ -865,7 +865,7 @@ void wpa_mesh_new_mesh_peer(struct wpa_supplicant *wpa_s, const u8 *addr,
                        mgmt = wpabuf_head(data->mesh_pending_auth);
                        os_reltime_age(&data->mesh_pending_auth_time, &age);
                        if (age.sec < 2 &&
-                           os_memcmp(mgmt->sa, addr, ETH_ALEN) == 0) {
+                           ether_addr_equal(mgmt->sa, addr)) {
                                wpa_printf(MSG_DEBUG,
                                           "mesh: Process pending Authentication frame from %u.%06u seconds ago",
                                           (unsigned int) age.sec,
index e40cf5bbebcdbcb343d93e4dfb2ab87bde867b3d..9e591d7d6df1a99f6f3f3dd52fb06e8b42d9547f 100644 (file)
@@ -23,12 +23,12 @@ wpas_get_tx_interface(struct wpa_supplicant *wpa_s, const u8 *src)
 {
        struct wpa_supplicant *iface;
 
-       if (os_memcmp(src, wpa_s->own_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(src, wpa_s->own_addr)) {
 #ifdef CONFIG_P2P
                if (wpa_s->p2p_mgmt && wpa_s != wpa_s->parent &&
                    wpa_s->parent->ap_iface &&
-                   os_memcmp(wpa_s->parent->own_addr,
-                             wpa_s->own_addr, ETH_ALEN) == 0 &&
+                   ether_addr_equal(wpa_s->parent->own_addr,
+                                    wpa_s->own_addr) &&
                    wpabuf_len(wpa_s->pending_action_tx) >= 2 &&
                    *wpabuf_head_u8(wpa_s->pending_action_tx) !=
                    WLAN_ACTION_PUBLIC) {
@@ -52,7 +52,7 @@ wpas_get_tx_interface(struct wpa_supplicant *wpa_s, const u8 *src)
         */
        iface = wpa_s->global->ifaces;
        while (iface) {
-               if (os_memcmp(src, iface->own_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(src, iface->own_addr))
                        break;
                iface = iface->next;
        }
@@ -186,7 +186,7 @@ void offchannel_send_action_tx_status(
                return;
        }
 
-       if (os_memcmp(dst, wpa_s->pending_action_dst, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(dst, wpa_s->pending_action_dst)) {
                wpa_printf(MSG_DEBUG, "Off-channel: Ignore Action TX status - "
                           "unknown destination address");
                return;
index 6193fe13bf74b2b241cf104eb6d10c2a59bf5179..0904d60efcdc62282cb23bbdc38b657e92038163 100644 (file)
@@ -1184,7 +1184,7 @@ static int wpas_p2p_store_persistent_group(struct wpa_supplicant *wpa_s,
                   "group (GO Dev Addr " MACSTR ")", MAC2STR(go_dev_addr));
        for (s = wpa_s->conf->ssid; s; s = s->next) {
                if (s->disabled == 2 &&
-                   os_memcmp(go_dev_addr, s->bssid, ETH_ALEN) == 0 &&
+                   ether_addr_equal(go_dev_addr, s->bssid) &&
                    s->ssid_len == ssid->ssid_len &&
                    os_memcmp(ssid->ssid, s->ssid, ssid->ssid_len) == 0)
                        break;
@@ -1290,8 +1290,8 @@ static void wpas_p2p_add_persistent_group_client(struct wpa_supplicant *wpa_s,
                return;
 
        for (i = 0; s->p2p_client_list && i < s->num_p2p_clients; i++) {
-               if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN, addr,
-                             ETH_ALEN) != 0)
+               if (!ether_addr_equal(s->p2p_client_list + i * 2 * ETH_ALEN,
+                                     addr))
                        continue;
 
                if (i == s->num_p2p_clients - 1)
@@ -1590,8 +1590,8 @@ static void wpas_p2p_send_action_tx_status(struct wpa_supplicant *wpa_s,
 
        if (result != OFFCHANNEL_SEND_ACTION_SUCCESS &&
            wpa_s->pending_pd_before_join &&
-           (os_memcmp(dst, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0 ||
-            os_memcmp(dst, wpa_s->pending_join_iface_addr, ETH_ALEN) == 0) &&
+           (ether_addr_equal(dst, wpa_s->pending_join_dev_addr) ||
+            ether_addr_equal(dst, wpa_s->pending_join_iface_addr)) &&
            wpa_s->p2p_fallback_to_go_neg) {
                wpa_s->pending_pd_before_join = 0;
                wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No ACK for PD Req "
@@ -2904,8 +2904,8 @@ static void wpas_prov_disc_resp(void *ctx, const u8 *peer, u16 config_methods)
        char params[20];
 
        if (wpa_s->pending_pd_before_join &&
-           (os_memcmp(peer, wpa_s->pending_join_dev_addr, ETH_ALEN) == 0 ||
-            os_memcmp(peer, wpa_s->pending_join_iface_addr, ETH_ALEN) == 0)) {
+           (ether_addr_equal(peer, wpa_s->pending_join_dev_addr) ||
+            ether_addr_equal(peer, wpa_s->pending_join_iface_addr))) {
                wpa_s->pending_pd_before_join = 0;
                wpa_printf(MSG_DEBUG, "P2P: Starting pending "
                           "join-existing-group operation");
@@ -3198,9 +3198,8 @@ static u8 wpas_invitation_process(void *ctx, const u8 *sa, const u8 *bssid,
                           " to join an active group (SSID: %s)",
                           MAC2STR(sa), wpa_ssid_txt(ssid, ssid_len));
                if (!is_zero_ether_addr(wpa_s->p2p_auth_invite) &&
-                   (os_memcmp(go_dev_addr, wpa_s->p2p_auth_invite, ETH_ALEN)
-                    == 0 ||
-                    os_memcmp(sa, wpa_s->p2p_auth_invite, ETH_ALEN) == 0)) {
+                   (ether_addr_equal(go_dev_addr, wpa_s->p2p_auth_invite) ||
+                    ether_addr_equal(sa, wpa_s->p2p_auth_invite))) {
                        wpa_printf(MSG_DEBUG, "P2P: Accept previously "
                                   "authorized invitation");
                        goto accept_inv;
@@ -3237,7 +3236,7 @@ static u8 wpas_invitation_process(void *ctx, const u8 *sa, const u8 *bssid,
        }
 
        if (!is_zero_ether_addr(wpa_s->p2p_auth_invite) &&
-           os_memcmp(sa, wpa_s->p2p_auth_invite, ETH_ALEN) == 0) {
+           ether_addr_equal(sa, wpa_s->p2p_auth_invite)) {
                wpa_printf(MSG_DEBUG, "P2P: Accept previously initiated "
                           "invitation to re-invoke a persistent group");
                os_memset(wpa_s->p2p_auth_invite, 0, ETH_ALEN);
@@ -3246,7 +3245,7 @@ static u8 wpas_invitation_process(void *ctx, const u8 *sa, const u8 *bssid,
 
        for (s = wpa_s->conf->ssid; s; s = s->next) {
                if (s->disabled == 2 &&
-                   os_memcmp(s->bssid, go_dev_addr, ETH_ALEN) == 0 &&
+                   ether_addr_equal(s->bssid, go_dev_addr) &&
                    s->ssid_len == ssid_len &&
                    os_memcmp(ssid, s->ssid, ssid_len) == 0)
                        break;
@@ -3448,13 +3447,13 @@ static void wpas_remove_persistent_peer(struct wpa_supplicant *wpa_s,
                return;
 
        for (i = 0; ssid->p2p_client_list && i < ssid->num_p2p_clients; i++) {
-               if (os_memcmp(ssid->p2p_client_list + i * 2 * ETH_ALEN, peer,
-                             ETH_ALEN) == 0)
+               if (ether_addr_equal(ssid->p2p_client_list + i * 2 * ETH_ALEN,
+                                    peer))
                        break;
        }
        if (i >= ssid->num_p2p_clients || !ssid->p2p_client_list) {
                if (ssid->mode != WPAS_MODE_P2P_GO &&
-                   os_memcmp(ssid->bssid, peer, ETH_ALEN) == 0) {
+                   ether_addr_equal(ssid->bssid, peer)) {
                        wpa_printf(MSG_DEBUG, "P2P: Remove persistent group %d "
                                   "due to invitation result", ssid->id);
                        wpas_notify_network_removed(wpa_s, ssid);
@@ -4149,7 +4148,7 @@ static int wpas_get_noa(void *ctx, const u8 *interface_addr, u8 *buf,
        struct wpa_supplicant *wpa_s = ctx;
 
        for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
-               if (os_memcmp(wpa_s->own_addr, interface_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(wpa_s->own_addr, interface_addr))
                        break;
        }
        if (wpa_s == NULL)
@@ -4188,7 +4187,7 @@ struct wpa_supplicant * wpas_get_p2p_client_iface(struct wpa_supplicant *wpa_s,
                struct wpa_ssid *ssid = wpa_s->current_ssid;
                if (ssid && (ssid->mode != WPAS_MODE_INFRA || !ssid->p2p_group))
                        continue;
-               if (os_memcmp(wpa_s->go_dev_addr, peer_dev_addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(wpa_s->go_dev_addr, peer_dev_addr))
                        return wpa_s;
        }
 
@@ -4399,7 +4398,7 @@ static int wpas_remove_stale_groups(void *ctx, const u8 *peer, const u8 *go,
        while ((s = wpas_p2p_get_persistent(wpa_s, peer, NULL, 0))) {
                if (go && ssid && ssid_len &&
                    s->ssid_len == ssid_len &&
-                   os_memcmp(go, s->bssid, ETH_ALEN) == 0 &&
+                   ether_addr_equal(go, s->bssid) &&
                    os_memcmp(ssid, s->ssid, ssid_len) == 0)
                        break;
 
@@ -4415,8 +4414,8 @@ static int wpas_remove_stale_groups(void *ctx, const u8 *peer, const u8 *go,
                }
 
                for (i = 0; i < s->num_p2p_clients; i++) {
-                       if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN,
-                                     peer, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(s->p2p_client_list +
+                                             i * 2 * ETH_ALEN, peer))
                                continue;
 
                        os_memmove(s->p2p_client_list + i * 2 * ETH_ALEN,
@@ -4570,7 +4569,7 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
                        break;
 
                if (s && s->ssid_len == stale->ssid_len &&
-                   os_memcmp(stale->bssid, s->bssid, ETH_ALEN) == 0 &&
+                   ether_addr_equal(stale->bssid, s->bssid) &&
                    os_memcmp(stale->ssid, s->ssid, s->ssid_len) == 0)
                        break;
 
@@ -4586,9 +4585,8 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
                        size_t i;
 
                        for (i = 0; i < stale->num_p2p_clients; i++) {
-                               if (os_memcmp(stale->p2p_client_list +
-                                             i * ETH_ALEN,
-                                             dev, ETH_ALEN) == 0) {
+                               if (ether_addr_equal(stale->p2p_client_list +
+                                                    i * ETH_ALEN, dev)) {
                                        os_memmove(stale->p2p_client_list +
                                                   i * ETH_ALEN,
                                                   stale->p2p_client_list +
@@ -5434,8 +5432,8 @@ static void wpas_p2p_scan_res_join(struct wpa_supplicant *wpa_s,
            p2p_get_interface_addr(wpa_s->global->p2p,
                                   wpa_s->pending_join_dev_addr,
                                   iface_addr) == 0 &&
-           os_memcmp(iface_addr, wpa_s->pending_join_dev_addr, ETH_ALEN) != 0
-           && !wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr)) {
+           !ether_addr_equal(iface_addr, wpa_s->pending_join_dev_addr) &&
+           !wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr)) {
                wpa_printf(MSG_DEBUG, "P2P: Overwrite pending interface "
                           "address for join from " MACSTR " to " MACSTR
                           " based on newly discovered P2P peer entry",
@@ -5475,10 +5473,9 @@ static void wpas_p2p_scan_res_join(struct wpa_supplicant *wpa_s,
                           wpa_ssid_txt(bss->ssid, bss->ssid_len));
                if (p2p_parse_dev_addr(wpa_bss_ie_ptr(bss), bss->ie_len,
                                       dev_addr) == 0 &&
-                   os_memcmp(wpa_s->pending_join_dev_addr,
-                             wpa_s->pending_join_iface_addr, ETH_ALEN) == 0 &&
-                   os_memcmp(dev_addr, wpa_s->pending_join_dev_addr,
-                             ETH_ALEN) != 0) {
+                   ether_addr_equal(wpa_s->pending_join_dev_addr,
+                                    wpa_s->pending_join_iface_addr) &&
+                   !ether_addr_equal(dev_addr, wpa_s->pending_join_dev_addr)) {
                        wpa_printf(MSG_DEBUG,
                                   "P2P: Update target GO device address based on BSS entry: " MACSTR " (was " MACSTR ")",
                                   MAC2STR(dev_addr),
@@ -8651,13 +8648,13 @@ struct wpa_ssid * wpas_p2p_get_persistent(struct wpa_supplicant *wpa_s,
                                return s;
                        continue;
                }
-               if (os_memcmp(s->bssid, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(s->bssid, addr))
                        return s; /* peer is GO in the persistent group */
                if (s->mode != WPAS_MODE_P2P_GO || s->p2p_client_list == NULL)
                        continue;
                for (i = 0; i < s->num_p2p_clients; i++) {
-                       if (os_memcmp(s->p2p_client_list + i * 2 * ETH_ALEN,
-                                     addr, ETH_ALEN) == 0)
+                       if (ether_addr_equal(s->p2p_client_list +
+                                            i * 2 * ETH_ALEN, addr))
                                return s; /* peer is P2P client in persistent
                                           * group */
                }
@@ -8799,9 +8796,9 @@ static int wpas_p2p_remove_psk_entry(struct wpa_supplicant *wpa_s,
        dl_list_for_each_safe(psk, tmp, &s->psk_list, struct psk_list_entry,
                              list) {
                if ((iface_addr && !psk->p2p &&
-                    os_memcmp(addr, psk->addr, ETH_ALEN) == 0) ||
+                    ether_addr_equal(addr, psk->addr)) ||
                    (!iface_addr && psk->p2p &&
-                    os_memcmp(addr, psk->addr, ETH_ALEN) == 0)) {
+                    ether_addr_equal(addr, psk->addr))) {
                        wpa_dbg(wpa_s, MSG_DEBUG,
                                "P2P: Remove persistent group PSK list entry for "
                                MACSTR " p2p=%u",
@@ -8940,9 +8937,9 @@ static void wpas_p2p_remove_client_go(struct wpa_supplicant *wpa_s,
        prev = NULL;
        psk = hapd->conf->ssid.wpa_psk;
        while (psk) {
-               if ((iface_addr && os_memcmp(peer, psk->addr, ETH_ALEN) == 0) ||
+               if ((iface_addr && ether_addr_equal(peer, psk->addr)) ||
                    (!iface_addr &&
-                    os_memcmp(peer, psk->p2p_dev_addr, ETH_ALEN) == 0)) {
+                    ether_addr_equal(peer, psk->p2p_dev_addr))) {
                        wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Remove operating group PSK entry for "
                                MACSTR " iface_addr=%d",
                                MAC2STR(peer), iface_addr);
index 9bbaab80da1896f4a7401ba90dec54d2549d9ab5..2e65cf085b97fadd96b5ca8545040eedaaaf03f5 100644 (file)
@@ -320,7 +320,7 @@ static int wpas_pasn_set_keys_from_cache(struct wpa_supplicant *wpa_s,
                return -1;
        }
 
-       if (os_memcmp(entry->own_addr, own_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(entry->own_addr, own_addr)) {
                wpa_printf(MSG_DEBUG,
                           "PASN: own addr " MACSTR " and PTKSA entry own addr "
                           MACSTR " differ",
@@ -352,7 +352,7 @@ static void wpas_pasn_configure_next_peer(struct wpa_supplicant *wpa_s,
        while (wpa_s->pasn_count < pasn_params->num_peers) {
                peer = &pasn_params->peer[wpa_s->pasn_count];
 
-               if (os_memcmp(wpa_s->bssid, peer->peer_addr, ETH_ALEN) == 0) {
+               if (ether_addr_equal(wpa_s->bssid, peer->peer_addr)) {
                        wpa_printf(MSG_DEBUG,
                                   "PASN: Associated peer is not expected");
                        peer->status = PASN_STATUS_FAILURE;
@@ -468,7 +468,7 @@ static struct wpa_bss * wpas_pasn_allowed(struct wpa_supplicant *wpa_s,
        struct wpa_ie_data rsne_data;
        int ret;
 
-       if (os_memcmp(wpa_s->bssid, peer_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(wpa_s->bssid, peer_addr)) {
                wpa_printf(MSG_DEBUG,
                           "PASN: Not doing authentication with current BSS");
                return NULL;
@@ -925,7 +925,7 @@ int wpas_pasn_deauthenticate(struct wpa_supplicant *wpa_s, const u8 *own_addr,
        struct ieee80211_mgmt *deauth;
        int ret;
 
-       if (os_memcmp(wpa_s->bssid, peer_addr, ETH_ALEN) == 0) {
+       if (ether_addr_equal(wpa_s->bssid, peer_addr)) {
                wpa_printf(MSG_DEBUG,
                           "PASN: Cannot deauthenticate from current BSS");
                return -1;
index 1aa87bb01760a10d9deb5bf67d9c95962c16dc92..2aaf7d35f0867587740d74ba89f6b6c01f540858 100644 (file)
@@ -936,8 +936,8 @@ static int wpas_add_beacon_rep(struct wpa_supplicant *wpa_s,
        struct rrm_measurement_beacon_report rep;
        u8 idx = 0;
 
-       if (os_memcmp(data->bssid, broadcast_ether_addr, ETH_ALEN) != 0 &&
-           os_memcmp(data->bssid, bss->bssid, ETH_ALEN) != 0)
+       if (!ether_addr_equal(data->bssid, broadcast_ether_addr) &&
+           !ether_addr_equal(data->bssid, bss->bssid))
                return 0;
 
        if (data->ssid_len &&
@@ -1515,8 +1515,8 @@ int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
                   MAC2STR(info->scan_start_tsf_bssid),
                   MAC2STR(wpa_s->current_bss->bssid));
        if ((wpa_s->drv_rrm_flags & WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
-           os_memcmp(info->scan_start_tsf_bssid, wpa_s->current_bss->bssid,
-                     ETH_ALEN) != 0) {
+           !ether_addr_equal(info->scan_start_tsf_bssid,
+                             wpa_s->current_bss->bssid)) {
                wpa_printf(MSG_DEBUG,
                           "RRM: Ignore scan results due to mismatching TSF BSSID");
                goto out;
@@ -1531,8 +1531,8 @@ int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
 
                if ((wpa_s->drv_rrm_flags &
                     WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT) &&
-                   os_memcmp(scan_res->res[i]->tsf_bssid,
-                             wpa_s->current_bss->bssid, ETH_ALEN) != 0) {
+                   !ether_addr_equal(scan_res->res[i]->tsf_bssid,
+                                     wpa_s->current_bss->bssid)) {
                        wpa_printf(MSG_DEBUG,
                                   "RRM: Ignore scan result for " MACSTR
                                   " due to mismatching TSF BSSID" MACSTR,
index 6e03a13ce6c6cd02dcea7f5c21d67fc98bf7b545..aef85461c8c443695fdc493aeb49935ca8d0e470 100644 (file)
@@ -2602,8 +2602,7 @@ int wpa_supplicant_filter_bssid_match(struct wpa_supplicant *wpa_s,
                return 1;
 
        for (i = 0; i < wpa_s->bssid_filter_count; i++) {
-               if (os_memcmp(wpa_s->bssid_filter + i * ETH_ALEN, bssid,
-                             ETH_ALEN) == 0)
+               if (ether_addr_equal(wpa_s->bssid_filter + i * ETH_ALEN, bssid))
                        return 1;
        }
 
index c791e116b4d4acc984bc69b3b28ca064a5d21b53..632a787b095bebf3267ea0ec259ebf03214bfae0 100644 (file)
@@ -166,7 +166,7 @@ static struct wpabuf * sme_auth_build_sae_commit(struct wpa_supplicant *wpa_s,
        }
 
        if (reuse && wpa_s->sme.sae.tmp &&
-           os_memcmp(addr, wpa_s->sme.sae.tmp->bssid, ETH_ALEN) == 0) {
+           ether_addr_equal(addr, wpa_s->sme.sae.tmp->bssid)) {
                wpa_printf(MSG_DEBUG,
                           "SAE: Reuse previously generated PWE on a retry with the same AP");
                use_pt = wpa_s->sme.sae.h2e;
@@ -412,9 +412,9 @@ static struct wpa_bss * wpas_ml_connect_pref(struct wpa_supplicant *wpa_s,
                        if (wpa_s->mlo_assoc_link_id == i)
                                continue;
 
-                       if (os_memcmp(wpa_s->links[i].bssid,
-                                     wpa_s->conf->mld_connect_bssid_pref,
-                                     ETH_ALEN) == 0)
+                       if (ether_addr_equal(
+                                   wpa_s->links[i].bssid,
+                                   wpa_s->conf->mld_connect_bssid_pref))
                                goto found;
                }
        }
@@ -506,7 +506,7 @@ static void wpas_sme_ml_auth(struct wpa_supplicant *wpa_s,
 
        wpa_printf(MSG_DEBUG, "MLD: mld_address=" MACSTR, MAC2STR(mld_addr));
 
-       if (os_memcmp(wpa_s->ap_mld_addr, mld_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(wpa_s->ap_mld_addr, mld_addr)) {
                wpa_printf(MSG_DEBUG, "MLD: Unexpected MLD address (expected "
                           MACSTR ")", MAC2STR(wpa_s->ap_mld_addr));
                goto out;
@@ -1622,8 +1622,7 @@ static int sme_external_ml_auth(struct wpa_supplicant *wpa_s,
 
        wpa_printf(MSG_DEBUG, "MLD: mld_address=" MACSTR, MAC2STR(mld_addr));
 
-       if (os_memcmp(wpa_s->sme.ext_auth_ap_mld_addr, mld_addr, ETH_ALEN) !=
-           0) {
+       if (!ether_addr_equal(wpa_s->sme.ext_auth_ap_mld_addr, mld_addr)) {
                wpa_printf(MSG_DEBUG, "MLD: Unexpected MLD address (expected "
                           MACSTR ")",
                           MAC2STR(wpa_s->sme.ext_auth_ap_mld_addr));
@@ -1978,9 +1977,9 @@ void sme_event_auth(struct wpa_supplicant *wpa_s, union wpa_event_data *data)
                return;
        }
 
-       if (os_memcmp(wpa_s->pending_bssid, data->auth.peer, ETH_ALEN) != 0 &&
+       if (!ether_addr_equal(wpa_s->pending_bssid, data->auth.peer) &&
            !(wpa_s->valid_links &&
-             os_memcmp(wpa_s->ap_mld_addr, data->auth.peer, ETH_ALEN) == 0)) {
+             ether_addr_equal(wpa_s->ap_mld_addr, data->auth.peer))) {
                wpa_dbg(wpa_s, MSG_DEBUG, "SME: Ignore authentication with "
                        "unexpected peer " MACSTR,
                        MAC2STR(data->auth.peer));
@@ -3304,7 +3303,7 @@ void sme_event_unprot_disconnect(struct wpa_supplicant *wpa_s, const u8 *sa,
        ssid = wpa_s->current_ssid;
        if (wpas_get_ssid_pmf(wpa_s, ssid) == NO_MGMT_FRAME_PROTECTION)
                return;
-       if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0)
+       if (!ether_addr_equal(sa, wpa_s->bssid))
                return;
        if (reason_code != WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA &&
            reason_code != WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA)
@@ -3409,7 +3408,7 @@ static void sme_process_sa_query_response(struct wpa_supplicant *wpa_s,
        wpa_dbg(wpa_s, MSG_DEBUG, "SME: Received SA Query response from "
                MACSTR " (trans_id %02x%02x)", MAC2STR(sa), data[1], data[2]);
 
-       if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0)
+       if (!ether_addr_equal(sa, wpa_s->bssid))
                return;
 
        for (i = 0; i < wpa_s->sme.sa_query_count; i++) {
index d0fdd55d30fc29b6cbe1b2339dc59e0059691da1..37e2ed4e6485f32ef6087194a3bad15dc385027e 100644 (file)
@@ -678,7 +678,7 @@ static void wmm_ac_handle_addts_resp(struct wpa_supplicant *wpa_s, const u8 *sa,
        }
 
        /* make sure the params are the same */
-       if (os_memcmp(req->address, sa, ETH_ALEN) != 0 ||
+       if (!ether_addr_equal(req->address, sa) ||
            tsid != wmm_ac_get_tsid(&req->tspec) ||
            up != wmm_ac_get_user_priority(&req->tspec) ||
            dir != wmm_ac_get_direction(&req->tspec)) {
@@ -755,13 +755,13 @@ void wmm_ac_rx_action(struct wpa_supplicant *wpa_s, const u8 *da,
        }
 
        /* WMM AC action frame */
-       if (os_memcmp(da, wpa_s->own_addr, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(da, wpa_s->own_addr)) {
                wpa_printf(MSG_DEBUG, "WMM AC: frame destination addr="MACSTR
                           " is other than ours, ignoring frame", MAC2STR(da));
                return;
        }
 
-       if (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(sa, wpa_s->bssid)) {
                wpa_printf(MSG_DEBUG, "WMM AC: ignore frame with sa " MACSTR
                           " different other than our bssid", MAC2STR(da));
                return;
index d121c1bb9da6663c13f2b0d0e9f8f956736ba5c0..3fc11b24eb025299b5f75779f252da0ec2df738d 100644 (file)
@@ -686,9 +686,8 @@ get_mbo_transition_candidate(struct wpa_supplicant *wpa_s,
        if (reason) {
                for (i = 0; i < info->num; i++) {
                        if (first_candidate_bssid &&
-                           os_memcmp(first_candidate_bssid,
-                                     info->candidates[i].bssid, ETH_ALEN) == 0)
-                       {
+                           ether_addr_equal(first_candidate_bssid,
+                                            info->candidates[i].bssid)) {
                                *reason = info->candidates[i].reject_reason;
                                break;
                        }
@@ -1194,8 +1193,8 @@ int wnm_scan_process(struct wpa_supplicant *wpa_s, int reply_on_fail)
        }
 
        if (!wpa_s->current_bss ||
-           os_memcmp(wpa_s->wnm_cand_from_bss, wpa_s->current_bss->bssid,
-                     ETH_ALEN) != 0) {
+           !ether_addr_equal(wpa_s->wnm_cand_from_bss,
+                             wpa_s->current_bss->bssid)) {
                wpa_printf(MSG_DEBUG, "WNM: Stored BSS transition candidate list not from the current BSS - ignore it");
                return 0;
        }
@@ -1388,7 +1387,7 @@ static int wnm_fetch_scan_results(struct wpa_supplicant *wpa_s)
                        const u8 *ssid_ie;
 
                        res = scan_res->res[j];
-                       if (os_memcmp(nei->bssid, res->bssid, ETH_ALEN) != 0 ||
+                       if (!ether_addr_equal(nei->bssid, res->bssid) ||
                            res->age > WNM_SCAN_RESULT_AGE * 1000)
                                continue;
                        bss = wpa_s->current_bss;
@@ -1581,8 +1580,7 @@ static void ieee802_11_rx_bss_trans_mgmt_req(struct wpa_supplicant *wpa_s,
                                wnm_parse_neighbor_report(wpa_s, pos, len, rep);
                                if ((wpa_s->wnm_mode &
                                     WNM_BSS_TM_REQ_DISASSOC_IMMINENT) &&
-                                   os_memcmp(rep->bssid, wpa_s->bssid,
-                                             ETH_ALEN) == 0)
+                                   ether_addr_equal(rep->bssid, wpa_s->bssid))
                                        rep->disassoc_imminent = 1;
 
                                wpa_s->wnm_num_neighbor_report++;
@@ -1901,9 +1899,9 @@ static void ieee802_11_rx_wnm_notif_req(struct wpa_supplicant *wpa_s,
                    pos, end - pos);
 
        if (wpa_s->wpa_state != WPA_COMPLETED ||
-           (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+           (!ether_addr_equal(sa, wpa_s->bssid) &&
             (!wpa_s->valid_links ||
-             os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+             !ether_addr_equal(sa, wpa_s->ap_mld_addr)))) {
                wpa_dbg(wpa_s, MSG_DEBUG, "WNM: WNM-Notification frame not "
                        "from our AP - ignore it");
                return;
@@ -1947,9 +1945,9 @@ static void ieee802_11_rx_wnm_coloc_intf_req(struct wpa_supplicant *wpa_s,
                return; /* only nonzero values are used for request */
 
        if (wpa_s->wpa_state != WPA_COMPLETED ||
-           (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+           (!ether_addr_equal(sa, wpa_s->bssid) &&
             (!wpa_s->valid_links ||
-             os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+             !ether_addr_equal(sa, wpa_s->ap_mld_addr)))) {
                wpa_dbg(wpa_s, MSG_DEBUG,
                        "WNM: Collocated Interference Request frame not from current AP - ignore it");
                return;
@@ -1979,9 +1977,9 @@ void ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s,
        wpa_printf(MSG_DEBUG, "WNM: RX action %u from " MACSTR,
                   act, MAC2STR(mgmt->sa));
        if (wpa_s->wpa_state < WPA_ASSOCIATED ||
-           (os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) != 0 &&
+           (!ether_addr_equal(mgmt->sa, wpa_s->bssid) &&
             (!wpa_s->valid_links ||
-             os_memcmp(mgmt->sa, wpa_s->ap_mld_addr, ETH_ALEN) != 0))) {
+             !ether_addr_equal(mgmt->sa, wpa_s->ap_mld_addr)))) {
                wpa_printf(MSG_DEBUG, "WNM: Ignore unexpected WNM Action "
                           "frame");
                return;
@@ -2083,7 +2081,7 @@ bool wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
         */
 
        if (wpa_s->current_bss &&
-           os_memcmp(wpa_s->current_bss->bssid, bss->bssid, ETH_ALEN) == 0) {
+           ether_addr_equal(wpa_s->current_bss->bssid, bss->bssid)) {
                wpa_dbg(wpa_s, MSG_DEBUG,
                        "WNM: Disassociation imminent: current BSS");
                return true;
@@ -2096,8 +2094,7 @@ bool wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
                if (!(wpa_s->valid_links & BIT(i)))
                        continue;
 
-               if (os_memcmp(wpa_s->links[i].bssid, bss->bssid,
-                             ETH_ALEN) == 0) {
+               if (ether_addr_equal(wpa_s->links[i].bssid, bss->bssid)) {
                        wpa_dbg(wpa_s, MSG_DEBUG,
                                "WNM: MLD: Disassociation imminent: current link");
                        return true;
index 63201b3dafa92ed0d54394a95553184a7cc9d191..b8d15e409e1ba2a385810a55c444023ca29d9c3a 100644 (file)
@@ -2312,8 +2312,7 @@ int wpas_update_random_addr(struct wpa_supplicant *wpa_s,
                if (style == WPAS_MAC_ADDR_STYLE_DEDICATED_PER_ESS) {
                        /* Pregenerated addresses do not expire but their value
                         * might have changed, so let's check that. */
-                       if (os_memcmp(wpa_s->own_addr, ssid->mac_value,
-                                     ETH_ALEN) == 0)
+                       if (ether_addr_equal(wpa_s->own_addr, ssid->mac_value))
                                return 0;
                } else if ((wpa_s->last_mac_addr_change.sec != 0 ||
                            wpa_s->last_mac_addr_change.usec != 0) &&
@@ -5328,14 +5327,14 @@ struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s)
                       os_memcmp(ssid, entry->ssid, ssid_len) == 0)) ||
                     wired) &&
                    (!entry->bssid_set ||
-                    os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+                    ether_addr_equal(bssid, entry->bssid)))
                        return entry;
 #ifdef CONFIG_WPS
                if (!wpas_network_disabled(wpa_s, entry) &&
                    (entry->key_mgmt & WPA_KEY_MGMT_WPS) &&
                    (entry->ssid == NULL || entry->ssid_len == 0) &&
                    (!entry->bssid_set ||
-                    os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+                    ether_addr_equal(bssid, entry->bssid)))
                        return entry;
 #endif /* CONFIG_WPS */
 
@@ -5345,13 +5344,13 @@ struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s)
                     owe_trans_ssid_match(wpa_s, bssid, entry->ssid,
                                          entry->ssid_len)) &&
                    (!entry->bssid_set ||
-                    os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
+                    ether_addr_equal(bssid, entry->bssid)))
                        return entry;
 #endif /* CONFIG_OWE */
 
                if (!wpas_network_disabled(wpa_s, entry) && entry->bssid_set &&
                    entry->ssid_len == 0 &&
-                   os_memcmp(bssid, entry->bssid, ETH_ALEN) == 0)
+                   ether_addr_equal(bssid, entry->bssid))
                        return entry;
 
                entry = entry->next;
@@ -5479,7 +5478,7 @@ void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
 #ifdef CONFIG_AP
             !wpa_s->ap_iface &&
 #endif /* CONFIG_AP */
-            os_memcmp(src_addr, connected_addr, ETH_ALEN) != 0)) {
+            !ether_addr_equal(src_addr, connected_addr))) {
                /*
                 * There is possible race condition between receiving the
                 * association event and the EAPOL frame since they are coming
@@ -5509,7 +5508,7 @@ void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
        }
 
        wpa_s->last_eapol_matches_bssid =
-               os_memcmp(src_addr, connected_addr, ETH_ALEN) == 0;
+               ether_addr_equal(src_addr, connected_addr);
 
 #ifdef CONFIG_AP
        if (wpa_s->ap_iface) {
@@ -5666,7 +5665,7 @@ int wpa_supplicant_update_mac_addr(struct wpa_supplicant *wpa_s)
                fst_update_mac_addr(wpa_s->fst, wpa_s->own_addr);
 #endif /* CONFIG_FST */
 
-       if (os_memcmp(prev_mac_addr, wpa_s->own_addr, ETH_ALEN) != 0)
+       if (!ether_addr_equal(prev_mac_addr, wpa_s->own_addr))
                wpas_notify_mac_address_changed(wpa_s);
 
        return 0;
@@ -5683,7 +5682,7 @@ static void wpa_supplicant_rx_eapol_bridge(void *ctx, const u8 *src_addr,
                return;
        eth = (const struct l2_ethhdr *) buf;
 
-       if (os_memcmp(eth->h_dest, wpa_s->own_addr, ETH_ALEN) != 0 &&
+       if (!ether_addr_equal(eth->h_dest, wpa_s->own_addr) &&
            !(eth->h_dest[0] & 0x01)) {
                wpa_dbg(wpa_s, MSG_DEBUG, "RX EAPOL from " MACSTR " to " MACSTR
                        " (bridge - not for this interface - ignore)",
@@ -6374,7 +6373,7 @@ static int wpas_fst_send_action_cb(void *ctx, const u8 *da, struct wpabuf *data)
 {
        struct wpa_supplicant *wpa_s = ctx;
 
-       if (os_memcmp(wpa_s->bssid, da, ETH_ALEN) != 0) {
+       if (!ether_addr_equal(wpa_s->bssid, da)) {
                wpa_printf(MSG_INFO, "FST:%s:bssid=" MACSTR " != da=" MACSTR,
                           __func__, MAC2STR(wpa_s->bssid), MAC2STR(da));
                return -1;
@@ -6390,7 +6389,7 @@ static const struct wpabuf * wpas_fst_get_mb_ie_cb(void *ctx, const u8 *addr)
 {
        struct wpa_supplicant *wpa_s = ctx;
 
-       WPA_ASSERT(os_memcmp(wpa_s->bssid, addr, ETH_ALEN) == 0);
+       WPA_ASSERT(ether_addr_equal(wpa_s->bssid, addr));
        return wpa_s->received_mb_ies;
 }
 
@@ -6401,7 +6400,7 @@ static void wpas_fst_update_mb_ie_cb(void *ctx, const u8 *addr,
        struct wpa_supplicant *wpa_s = ctx;
        struct mb_ies_info info;
 
-       WPA_ASSERT(os_memcmp(wpa_s->bssid, addr, ETH_ALEN) == 0);
+       WPA_ASSERT(ether_addr_equal(wpa_s->bssid, addr));
 
        if (!mb_ies_info_by_ies(&info, buf, size)) {
                wpabuf_free(wpa_s->received_mb_ies);
@@ -8640,11 +8639,11 @@ int pmf_in_use(struct wpa_supplicant *wpa_s, const u8 *addr)
            wpa_s->wpa_state < WPA_4WAY_HANDSHAKE)
                return 0;
        if (wpa_s->valid_links) {
-               if (os_memcmp(addr, wpa_s->ap_mld_addr, ETH_ALEN) != 0 &&
+               if (!ether_addr_equal(addr, wpa_s->ap_mld_addr) &&
                    !wpas_ap_link_address(wpa_s, addr))
                        return 0;
        } else {
-               if (os_memcmp(addr, wpa_s->bssid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(addr, wpa_s->bssid))
                        return 0;
        }
        return wpa_sm_pmf_enabled(wpa_s->wpa);
@@ -8758,8 +8757,8 @@ int disallowed_bssid(struct wpa_supplicant *wpa_s, const u8 *bssid)
                return 0;
 
        for (i = 0; i < wpa_s->disallow_aps_bssid_count; i++) {
-               if (os_memcmp(wpa_s->disallow_aps_bssid + i * ETH_ALEN,
-                             bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(wpa_s->disallow_aps_bssid + i * ETH_ALEN,
+                                    bssid))
                        return 1;
        }
 
@@ -9069,7 +9068,7 @@ wpa_bss_tmp_disallowed * wpas_get_disallowed_bss(struct wpa_supplicant *wpa_s,
 
        dl_list_for_each(bss, &wpa_s->bss_tmp_disallowed,
                         struct wpa_bss_tmp_disallowed, list) {
-               if (os_memcmp(bssid, bss->bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(bssid, bss->bssid))
                        return bss;
        }
 
@@ -9152,7 +9151,7 @@ int wpa_is_bss_tmp_disallowed(struct wpa_supplicant *wpa_s,
 
        dl_list_for_each_safe(tmp, prev, &wpa_s->bss_tmp_disallowed,
                         struct wpa_bss_tmp_disallowed, list) {
-               if (os_memcmp(bss->bssid, tmp->bssid, ETH_ALEN) == 0) {
+               if (ether_addr_equal(bss->bssid, tmp->bssid)) {
                        disallowed = tmp;
                        break;
                }
@@ -9250,8 +9249,7 @@ int wpa_drv_signal_poll(struct wpa_supplicant *wpa_s,
 
                dl_list_for_each(dso, &wpa_s->drv_signal_override,
                                 struct driver_signal_override, list) {
-                       if (os_memcmp(wpa_s->bssid, dso->bssid,
-                                     ETH_ALEN) != 0)
+                       if (!ether_addr_equal(wpa_s->bssid, dso->bssid))
                                continue;
                        wpa_printf(MSG_DEBUG,
                                   "Override driver signal_poll information: current_signal: %d->%d avg_signal: %d->%d avg_beacon_signal: %d->%d current_noise: %d->%d",
@@ -9296,7 +9294,7 @@ wpa_drv_get_scan_results2(struct wpa_supplicant *wpa_s)
 
                dl_list_for_each(dso, &wpa_s->drv_signal_override,
                                 struct driver_signal_override, list) {
-                       if (os_memcmp(res->bssid, dso->bssid, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(res->bssid, dso->bssid))
                                continue;
                        wpa_printf(MSG_DEBUG,
                                   "Override driver scan signal level %d->%d for "
@@ -9329,7 +9327,7 @@ bool wpas_ap_link_address(struct wpa_supplicant *wpa_s, const u8 *addr)
                if (!(wpa_s->valid_links & BIT(i)))
                        continue;
 
-               if (os_memcmp(wpa_s->links[i].bssid, addr, ETH_ALEN) == 0)
+               if (ether_addr_equal(wpa_s->links[i].bssid, addr))
                        return true;
        }
 
index 55d996d5c4bc7c21b59e3115667cb926c58cf065..16463a47c52f432e701f0f966514c47245f778c5 100644 (file)
@@ -402,7 +402,7 @@ static int wpa_get_beacon_ie(struct wpa_supplicant *wpa_s)
        const u8 *ie;
 
        dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
-               if (os_memcmp(bss->bssid, wpa_s->bssid, ETH_ALEN) != 0)
+               if (!ether_addr_equal(bss->bssid, wpa_s->bssid))
                        continue;
                if (ssid == NULL ||
                    ((bss->ssid_len == ssid->ssid_len &&
index 220a5f8b50238b221b880fe52833a137229b9d99..2c08401b3b001eb5a60f90b50f4af873a224235c 100644 (file)
@@ -295,8 +295,7 @@ static void wpas_wps_remove_dup_network(struct wpa_supplicant *wpa_s,
                if (ssid->bssid_set || new_ssid->bssid_set) {
                        if (ssid->bssid_set != new_ssid->bssid_set)
                                continue;
-                       if (os_memcmp(ssid->bssid, new_ssid->bssid, ETH_ALEN) !=
-                           0)
+                       if (!ether_addr_equal(ssid->bssid, new_ssid->bssid))
                                continue;
                }
 
@@ -1062,7 +1061,7 @@ static struct wpa_ssid * wpas_wps_add_network(struct wpa_supplicant *wpa_s,
                 */
 #ifndef CONFIG_P2P
                dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
-                       if (os_memcmp(bssid, bss->bssid, ETH_ALEN) != 0)
+                       if (!ether_addr_equal(bssid, bss->bssid))
                                continue;
 
                        os_free(ssid->ssid);
@@ -1812,7 +1811,7 @@ int wpas_wps_ssid_wildcard_ok(struct wpa_supplicant *wpa_s,
        }
 
        if (!ret && ssid->bssid_set &&
-           os_memcmp(ssid->bssid, bss->bssid, ETH_ALEN) == 0) {
+           ether_addr_equal(ssid->bssid, bss->bssid)) {
                /* allow wildcard SSID due to hardcoded BSSID match */
                ret = 1;
        }
@@ -1851,11 +1850,11 @@ static bool wpas_wps_is_pbc_overlap(struct wps_ap_info *ap,
                                    const u8 *sel_uuid)
 {
        if (!ap->pbc_active ||
-           os_memcmp(selected->bssid, ap->bssid, ETH_ALEN) == 0)
+           ether_addr_equal(selected->bssid, ap->bssid))
                return false;
 
        if (!is_zero_ether_addr(ssid->bssid) &&
-           os_memcmp(ap->bssid, ssid->bssid, ETH_ALEN) != 0) {
+           !ether_addr_equal(ap->bssid, ssid->bssid)) {
                wpa_printf(MSG_DEBUG, "WPS: Ignore another BSS " MACSTR
                           " in active PBC mode due to local BSSID limitation",
                           MAC2STR(ap->bssid));
@@ -2943,7 +2942,7 @@ static struct wps_ap_info * wpas_wps_get_ap_info(struct wpa_supplicant *wpa_s,
 
        for (i = 0; i < wpa_s->num_wps_ap; i++) {
                struct wps_ap_info *ap = &wpa_s->wps_ap[i];
-               if (os_memcmp(ap->bssid, bssid, ETH_ALEN) == 0)
+               if (ether_addr_equal(ap->bssid, bssid))
                        return ap;
        }