]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
TDLS: Use merge_byte_arrays() helper
authorJouni Malinen <j@w1.fi>
Tue, 1 Jan 2013 18:34:08 +0000 (20:34 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 12 Jan 2013 15:51:53 +0000 (17:51 +0200)
This makes implementation simpler and easier for static analyzers to
understand.

Signed-hostap: Jouni Malinen <j@w1.fi>

src/rsn_supp/tdls.c

index 7646ca88671a398a097b5ba885fae57b04884d18..c38fadafff9e2883a425797d849028447167f0a2 100644 (file)
@@ -1309,21 +1309,10 @@ static int copy_supp_rates(const struct wpa_eapol_ie_parse *kde,
                wpa_printf(MSG_DEBUG, "TDLS: No supported rates received");
                return -1;
        }
-
-       peer->supp_rates_len = kde->supp_rates_len - 2;
-       if (peer->supp_rates_len > IEEE80211_MAX_SUPP_RATES)
-               peer->supp_rates_len = IEEE80211_MAX_SUPP_RATES;
-       os_memcpy(peer->supp_rates, kde->supp_rates + 2, peer->supp_rates_len);
-
-       if (kde->ext_supp_rates) {
-               int clen = kde->ext_supp_rates_len - 2;
-               if (peer->supp_rates_len + clen > IEEE80211_MAX_SUPP_RATES)
-                       clen = IEEE80211_MAX_SUPP_RATES - peer->supp_rates_len;
-               os_memcpy(peer->supp_rates + peer->supp_rates_len,
-                         kde->ext_supp_rates + 2, clen);
-               peer->supp_rates_len += clen;
-       }
-
+       peer->supp_rates_len = merge_byte_arrays(
+               peer->supp_rates, sizeof(peer->supp_rates),
+               kde->supp_rates + 2, kde->supp_rates_len - 2,
+               kde->ext_supp_rates + 2, kde->ext_supp_rates_len - 2);
        return 0;
 }