diff --git a/src/binding/ieee80211/wifi_nl80211.c b/src/binding/ieee80211/wifi_nl80211.c index 93feddb..a400fd6 100644 --- a/src/binding/ieee80211/wifi_nl80211.c +++ b/src/binding/ieee80211/wifi_nl80211.c @@ -1,3 +1,5 @@ +#include + #include "wtp.h" #include "array.h" #include "list.h" @@ -903,7 +905,7 @@ static int nl80211_wlan_setbeacon(struct wifi_wlan* wlan) { nla_put_u32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, ntohl(*(uint32_t *)data)); data += sizeof(uint32_t); - suites_num = *(uint16_t *)data; + suites_num = le16toh(*(uint16_t *)data); data += 2; suites = alloca(suites_num * sizeof(uint32_t)); @@ -914,7 +916,7 @@ static int nl80211_wlan_setbeacon(struct wifi_wlan* wlan) { } nla_put(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, suites_num * sizeof(uint32_t), suites); - suites_num = *(uint16_t *)data; + suites_num = le16toh(*(uint16_t *)data); data += 2; suites = alloca(suites_num * sizeof(uint32_t)); diff --git a/src/radio.c b/src/radio.c index 52cd097..4e909ca 100644 --- a/src/radio.c +++ b/src/radio.c @@ -1,3 +1,5 @@ +#include + #include "wtp.h" #include "hash.h" #include "list.h" @@ -970,7 +972,7 @@ uint32_t wtp_radio_add_station(struct capwap_parsed_packet* packet) { data = (uint8_t *)(rsn + 1); data += 2; // RSN Version data += 4; // Group Chipher Suite - if (*(uint16_t *)data != 1) { + if (le16toh(*(uint16_t *)data) != 1) { log_printf(LOG_DEBUG, "add_station: RSNE IE, wrong Pairwise Cipher Suite Count (%d)", *(uint16_t *)data); return CAPWAP_RESULTCODE_FAILURE;