diff options
-rw-r--r-- | include/net/ieee80211_crypt.h | 6 | ||||
-rw-r--r-- | net/ieee80211/ieee80211_rx.c | 35 |
2 files changed, 24 insertions, 17 deletions
diff --git a/include/net/ieee80211_crypt.h b/include/net/ieee80211_crypt.h index 0c9d859d912e..0a1c2d82ca4b 100644 --- a/include/net/ieee80211_crypt.h +++ b/include/net/ieee80211_crypt.h | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <linux/skbuff.h> | 26 | #include <linux/skbuff.h> |
27 | 27 | ||
28 | enum { | 28 | enum { |
29 | IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1<<0), | 29 | IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 << 0), |
30 | }; | 30 | }; |
31 | 31 | ||
32 | struct ieee80211_crypto_ops { | 32 | struct ieee80211_crypto_ops { |
@@ -65,8 +65,8 @@ struct ieee80211_crypto_ops { | |||
65 | char *(*print_stats) (char *p, void *priv); | 65 | char *(*print_stats) (char *p, void *priv); |
66 | 66 | ||
67 | /* Crypto specific flag get/set for configuration settings */ | 67 | /* Crypto specific flag get/set for configuration settings */ |
68 | unsigned long (*get_flags)(void *priv); | 68 | unsigned long (*get_flags) (void *priv); |
69 | unsigned long (*set_flags)(unsigned long flags, void *priv); | 69 | unsigned long (*set_flags) (unsigned long flags, void *priv); |
70 | 70 | ||
71 | /* maximum number of bytes added by encryption; encrypt buf is | 71 | /* maximum number of bytes added by encryption; encrypt buf is |
72 | * allocated with extra_prefix_len bytes, copy of in_buf, and | 72 | * allocated with extra_prefix_len bytes, copy of in_buf, and |
diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c index 8d87d66c2a34..6b005cb0caa0 100644 --- a/net/ieee80211/ieee80211_rx.c +++ b/net/ieee80211/ieee80211_rx.c | |||
@@ -917,8 +917,9 @@ static int ieee80211_parse_qos_info_param_IE(struct ieee80211_info_element | |||
917 | return rc; | 917 | return rc; |
918 | } | 918 | } |
919 | 919 | ||
920 | static int ieee80211_parse_info_param(struct ieee80211_info_element *info_element, | 920 | static int ieee80211_parse_info_param(struct ieee80211_info_element |
921 | u16 length, struct ieee80211_network *network) | 921 | *info_element, u16 length, |
922 | struct ieee80211_network *network) | ||
922 | { | 923 | { |
923 | u8 i; | 924 | u8 i; |
924 | #ifdef CONFIG_IEEE80211_DEBUG | 925 | #ifdef CONFIG_IEEE80211_DEBUG |
@@ -929,11 +930,11 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen | |||
929 | while (length >= sizeof(*info_element)) { | 930 | while (length >= sizeof(*info_element)) { |
930 | if (sizeof(*info_element) + info_element->len > length) { | 931 | if (sizeof(*info_element) + info_element->len > length) { |
931 | IEEE80211_DEBUG_MGMT("Info elem: parse failed: " | 932 | IEEE80211_DEBUG_MGMT("Info elem: parse failed: " |
932 | "info_element->len + 2 > left : " | 933 | "info_element->len + 2 > left : " |
933 | "info_element->len+2=%zd left=%d, id=%d.\n", | 934 | "info_element->len+2=%zd left=%d, id=%d.\n", |
934 | info_element->len + | 935 | info_element->len + |
935 | sizeof(*info_element), | 936 | sizeof(*info_element), |
936 | length, info_element->id); | 937 | length, info_element->id); |
937 | return 1; | 938 | return 1; |
938 | } | 939 | } |
939 | 940 | ||
@@ -954,7 +955,7 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen | |||
954 | IW_ESSID_MAX_SIZE - network->ssid_len); | 955 | IW_ESSID_MAX_SIZE - network->ssid_len); |
955 | 956 | ||
956 | IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", | 957 | IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", |
957 | network->ssid, network->ssid_len); | 958 | network->ssid, network->ssid_len); |
958 | break; | 959 | break; |
959 | 960 | ||
960 | case MFIE_TYPE_RATES: | 961 | case MFIE_TYPE_RATES: |
@@ -1074,17 +1075,20 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen | |||
1074 | break; | 1075 | break; |
1075 | 1076 | ||
1076 | case MFIE_TYPE_QOS_PARAMETER: | 1077 | case MFIE_TYPE_QOS_PARAMETER: |
1077 | printk(KERN_ERR "QoS Error need to parse QOS_PARAMETER IE\n"); | 1078 | printk(KERN_ERR |
1079 | "QoS Error need to parse QOS_PARAMETER IE\n"); | ||
1078 | break; | 1080 | break; |
1079 | 1081 | ||
1080 | default: | 1082 | default: |
1081 | IEEE80211_DEBUG_MGMT("unsupported IE %d\n", | 1083 | IEEE80211_DEBUG_MGMT("unsupported IE %d\n", |
1082 | info_element->id); | 1084 | info_element->id); |
1083 | break; | 1085 | break; |
1084 | } | 1086 | } |
1085 | 1087 | ||
1086 | length -= sizeof(*info_element) + info_element->len; | 1088 | length -= sizeof(*info_element) + info_element->len; |
1087 | info_element = (struct ieee80211_info_element *) &info_element->data[info_element->len]; | 1089 | info_element = |
1090 | (struct ieee80211_info_element *)&info_element-> | ||
1091 | data[info_element->len]; | ||
1088 | } | 1092 | } |
1089 | 1093 | ||
1090 | return 0; | 1094 | return 0; |
@@ -1112,7 +1116,8 @@ static int ieee80211_handle_assoc_resp(struct ieee80211_device *ieee, struct iee | |||
1112 | network->rates_len = network->rates_ex_len = 0; | 1116 | network->rates_len = network->rates_ex_len = 0; |
1113 | network->last_associate = 0; | 1117 | network->last_associate = 0; |
1114 | network->ssid_len = 0; | 1118 | network->ssid_len = 0; |
1115 | network->erp_value = (network->capability & WLAN_CAPABILITY_IBSS) ? 0x3 : 0x0; | 1119 | network->erp_value = |
1120 | (network->capability & WLAN_CAPABILITY_IBSS) ? 0x3 : 0x0; | ||
1116 | 1121 | ||
1117 | if (stats->freq == IEEE80211_52GHZ_BAND) { | 1122 | if (stats->freq == IEEE80211_52GHZ_BAND) { |
1118 | /* for A band (No DS info) */ | 1123 | /* for A band (No DS info) */ |
@@ -1123,7 +1128,8 @@ static int ieee80211_handle_assoc_resp(struct ieee80211_device *ieee, struct iee | |||
1123 | network->wpa_ie_len = 0; | 1128 | network->wpa_ie_len = 0; |
1124 | network->rsn_ie_len = 0; | 1129 | network->rsn_ie_len = 0; |
1125 | 1130 | ||
1126 | if(ieee80211_parse_info_param(frame->info_element, stats->len - sizeof(*frame), network)) | 1131 | if (ieee80211_parse_info_param |
1132 | (frame->info_element, stats->len - sizeof(*frame), network)) | ||
1127 | return 1; | 1133 | return 1; |
1128 | 1134 | ||
1129 | network->mode = 0; | 1135 | network->mode = 0; |
@@ -1185,7 +1191,8 @@ static inline int ieee80211_network_init(struct ieee80211_device *ieee, struct i | |||
1185 | network->wpa_ie_len = 0; | 1191 | network->wpa_ie_len = 0; |
1186 | network->rsn_ie_len = 0; | 1192 | network->rsn_ie_len = 0; |
1187 | 1193 | ||
1188 | if(ieee80211_parse_info_param(beacon->info_element, stats->len - sizeof(*beacon), network)) | 1194 | if (ieee80211_parse_info_param |
1195 | (beacon->info_element, stats->len - sizeof(*beacon), network)) | ||
1189 | return 1; | 1196 | return 1; |
1190 | 1197 | ||
1191 | network->mode = 0; | 1198 | network->mode = 0; |