forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/net/wireless/rockchip_wlan/rtl8723cs/core/rtw_tdls.c
....@@ -1918,15 +1918,13 @@
19181918
19191919 switch (pIE->ElementID) {
19201920 case _SUPPORTEDRATES_IE_:
1921
- if (pIE->Length <= sizeof(supportRate)) {
1922
- _rtw_memcpy(supportRate, pIE->data, pIE->Length);
1923
- supportRateNum = pIE->Length;
1924
- }
1921
+ _rtw_memcpy(supportRate, pIE->data, pIE->Length);
1922
+ supportRateNum = pIE->Length;
19251923 break;
19261924 case _COUNTRY_IE_:
19271925 break;
19281926 case _EXT_SUPPORTEDRATES_IE_:
1929
- if ((supportRateNum + pIE->Length) <= sizeof(supportRate)) {
1927
+ if (supportRateNum < sizeof(supportRate)) {
19301928 _rtw_memcpy(supportRate + supportRateNum, pIE->data, pIE->Length);
19311929 supportRateNum += pIE->Length;
19321930 }
....@@ -1937,19 +1935,17 @@
19371935 rsnie_included = 1;
19381936 if (prx_pkt_attrib->encrypt) {
19391937 prsnie = (u8 *)pIE;
1940
- if (pIE->Length <= sizeof(ptdls_sta->TDLS_RSNIE)) {
1941
- /* Check CCMP pairwise_cipher presence. */
1942
- ppairwise_cipher = prsnie + 10;
1943
- _rtw_memcpy(ptdls_sta->TDLS_RSNIE, pIE->data, pIE->Length);
1944
- pairwise_count = *(u16 *)(ppairwise_cipher - 2);
1945
- for (k = 0; k < pairwise_count; k++) {
1946
- if (_rtw_memcmp(ppairwise_cipher + 4 * k, RSN_CIPHER_SUITE_CCMP, 4) == _TRUE)
1947
- ccmp_included = 1;
1948
- }
1949
-
1950
- if (ccmp_included == 0)
1951
- txmgmt.status_code = _STATS_INVALID_RSNIE_;
1938
+ /* Check CCMP pairwise_cipher presence. */
1939
+ ppairwise_cipher = prsnie + 10;
1940
+ _rtw_memcpy(ptdls_sta->TDLS_RSNIE, pIE->data, pIE->Length);
1941
+ pairwise_count = *(u16 *)(ppairwise_cipher - 2);
1942
+ for (k = 0; k < pairwise_count; k++) {
1943
+ if (_rtw_memcmp(ppairwise_cipher + 4 * k, RSN_CIPHER_SUITE_CCMP, 4) == _TRUE)
1944
+ ccmp_included = 1;
19521945 }
1946
+
1947
+ if (ccmp_included == 0)
1948
+ txmgmt.status_code = _STATS_INVALID_RSNIE_;
19531949 }
19541950 break;
19551951 case _EXT_CAP_IE_:
....@@ -2104,15 +2100,13 @@
21042100
21052101 switch (pIE->ElementID) {
21062102 case _SUPPORTEDRATES_IE_:
2107
- if (pIE->Length <= sizeof(supportRate)) {
2108
- _rtw_memcpy(supportRate, pIE->data, pIE->Length);
2109
- supportRateNum = pIE->Length;
2110
- }
2103
+ _rtw_memcpy(supportRate, pIE->data, pIE->Length);
2104
+ supportRateNum = pIE->Length;
21112105 break;
21122106 case _COUNTRY_IE_:
21132107 break;
21142108 case _EXT_SUPPORTEDRATES_IE_:
2115
- if ((supportRateNum + pIE->Length) <= sizeof(supportRate)) {
2109
+ if (supportRateNum < sizeof(supportRate)) {
21162110 _rtw_memcpy(supportRate + supportRateNum, pIE->data, pIE->Length);
21172111 supportRateNum += pIE->Length;
21182112 }