From 0dc400434fd66ec3d7c732d61d1e1c4939522be8 Mon Sep 17 00:00:00 2001 From: Marc Date: Wed, 10 Aug 2022 13:28:01 -0500 Subject: parse: Remove useless reassignment of suite_type --- src/libwifi/parse/misc/security.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src') diff --git a/src/libwifi/parse/misc/security.c b/src/libwifi/parse/misc/security.c index bf211f7..09553b5 100644 --- a/src/libwifi/parse/misc/security.c +++ b/src/libwifi/parse/misc/security.c @@ -69,7 +69,6 @@ int libwifi_get_rsn_info(struct libwifi_rsn_info *info, const unsigned char *tag } cur_cipher_suite = (struct wifi_cipher_suite *) data; memcpy(&info->pairwise_cipher_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); - info->pairwise_cipher_suites[i].suite_type = info->pairwise_cipher_suites[i].suite_type; data += sizeof(struct libwifi_cipher_suite); } @@ -94,7 +93,6 @@ int libwifi_get_rsn_info(struct libwifi_rsn_info *info, const unsigned char *tag } cur_cipher_suite = (struct wifi_cipher_suite *) data; memcpy(&info->auth_key_mgmt_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); - info->auth_key_mgmt_suites[i].suite_type = info->auth_key_mgmt_suites[i].suite_type; data += sizeof(struct libwifi_cipher_suite); } @@ -352,7 +350,6 @@ int libwifi_get_wpa_info(struct libwifi_wpa_info *info, const unsigned char *tag } cur_cipher_suite = (struct wifi_cipher_suite *) data; memcpy(&info->unicast_cipher_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); - info->unicast_cipher_suites[i].suite_type = info->unicast_cipher_suites[i].suite_type; data += sizeof(struct libwifi_cipher_suite); } @@ -377,7 +374,6 @@ int libwifi_get_wpa_info(struct libwifi_wpa_info *info, const unsigned char *tag } cur_cipher_suite = (struct wifi_cipher_suite *) data; memcpy(&info->auth_key_mgmt_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); - info->auth_key_mgmt_suites[i].suite_type = info->auth_key_mgmt_suites[i].suite_type; data += sizeof(struct libwifi_cipher_suite); } -- cgit 1.4.1 From 01d2b9b91d0a7f246028f578f57455c213ef0d7f Mon Sep 17 00:00:00 2001 From: Marc Date: Wed, 10 Aug 2022 13:28:51 -0500 Subject: parse: Check for WEP presence before removing it from bitfield --- src/libwifi/parse/management/common.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/libwifi/parse/management/common.c b/src/libwifi/parse/management/common.c index e847415..5e4fbf6 100644 --- a/src/libwifi/parse/management/common.c +++ b/src/libwifi/parse/management/common.c @@ -68,7 +68,9 @@ void libwifi_handle_ssid_tag(void *target, int target_type, const char *tag_data int libwifi_bss_handle_rsn_tag(struct libwifi_bss *bss, const unsigned char *rsn_data, int rsn_len) { struct libwifi_rsn_info rsn_info = {0}; - bss->encryption_info &= ~(unsigned int) WEP; + if (bss->encryption_info & WEP) { + bss->encryption_info &= ~(unsigned int) WEP; + } int min_len = sizeof(rsn_info.rsn_version) + sizeof(struct libwifi_cipher_suite); if (rsn_len < min_len) { @@ -105,7 +107,9 @@ int libwifi_bss_handle_msft_tag(struct libwifi_bss *bss, const unsigned char *ms switch (vendor_header->type) { case MICROSOFT_OUI_TYPE_WPA: - bss->encryption_info &= ~(unsigned int) WEP; + if (bss->encryption_info & WEP) { + bss->encryption_info &= ~(unsigned int) WEP; + } bss->encryption_info |= WPA; // Skip 4 bytes for the OUI (3) and Vendor Tag Type (1) -- cgit 1.4.1 From 76d6819676cb5183e512bf26b8ed0eeb20f722de Mon Sep 17 00:00:00 2001 From: Marc Date: Wed, 10 Aug 2022 13:46:01 -0500 Subject: parse: Update references to libwifi_cipher_suite struct --- src/libwifi/parse/misc/security.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/libwifi/parse/misc/security.c b/src/libwifi/parse/misc/security.c index 09553b5..7a9682b 100644 --- a/src/libwifi/parse/misc/security.c +++ b/src/libwifi/parse/misc/security.c @@ -62,12 +62,12 @@ int libwifi_get_rsn_info(struct libwifi_rsn_info *info, const unsigned char *tag info->num_pairwise_cipher_suites = suite_count; // Iterate through the found Pairwise Ciphers, adding them each time - struct wifi_cipher_suite *cur_cipher_suite = NULL; + struct libwifi_cipher_suite *cur_cipher_suite = NULL; for (int i = 0; i < suite_count; ++i) { if (data > tag_end) { return -EINVAL; } - cur_cipher_suite = (struct wifi_cipher_suite *) data; + cur_cipher_suite = (struct libwifi_cipher_suite *) data; memcpy(&info->pairwise_cipher_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); data += sizeof(struct libwifi_cipher_suite); } @@ -91,7 +91,7 @@ int libwifi_get_rsn_info(struct libwifi_rsn_info *info, const unsigned char *tag if (data > tag_end) { return -EINVAL; } - cur_cipher_suite = (struct wifi_cipher_suite *) data; + cur_cipher_suite = (struct libwifi_cipher_suite *) data; memcpy(&info->auth_key_mgmt_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); data += sizeof(struct libwifi_cipher_suite); } @@ -343,12 +343,12 @@ int libwifi_get_wpa_info(struct libwifi_wpa_info *info, const unsigned char *tag info->num_unicast_cipher_suites = suite_count; // Iterate through the found Unicast Ciphers, adding them each time - struct wifi_cipher_suite *cur_cipher_suite = NULL; + struct libwifi_cipher_suite *cur_cipher_suite = NULL; for (int i = 0; i < suite_count; ++i) { if (data > tag_end) { return -EINVAL; } - cur_cipher_suite = (struct wifi_cipher_suite *) data; + cur_cipher_suite = (struct libwifi_cipher_suite *) data; memcpy(&info->unicast_cipher_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); data += sizeof(struct libwifi_cipher_suite); } @@ -372,7 +372,7 @@ int libwifi_get_wpa_info(struct libwifi_wpa_info *info, const unsigned char *tag if (data > tag_end) { return -EINVAL; } - cur_cipher_suite = (struct wifi_cipher_suite *) data; + cur_cipher_suite = (struct libwifi_cipher_suite *) data; memcpy(&info->auth_key_mgmt_suites[i], cur_cipher_suite, sizeof(struct libwifi_cipher_suite)); data += sizeof(struct libwifi_cipher_suite); } -- cgit 1.4.1