mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
net: wireless: rockchip_wlan: realtek wifi: fix buffer overflow issue in rtw_ioctl_wext_private
References: CNVD-C-2020-263891 Signed-off-by: Weiguo Hu <hwg@rock-chips.com> Change-Id: If80c197d9e806a04a14a3a8dbe195942deed46eb
This commit is contained in:
parent
a24abc2faf
commit
3879e152ce
|
|
@ -13095,7 +13095,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -13114,7 +13114,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -13705,7 +13705,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 4096) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
} while (1);
|
||||
|
|
@ -13723,7 +13723,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 1024) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32*)buffer)[count++] = (s32)temp;
|
||||
} while (1);
|
||||
|
|
|
|||
|
|
@ -13660,7 +13660,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 4096) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
} while (1);
|
||||
|
|
@ -13678,7 +13678,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 1024) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32*)buffer)[count++] = (s32)temp;
|
||||
} while (1);
|
||||
|
|
|
|||
|
|
@ -12598,7 +12598,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12617,7 +12617,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -12792,7 +12792,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12811,7 +12811,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -13586,7 +13586,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 4096) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
} while (1);
|
||||
|
|
@ -13604,7 +13604,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str) break;
|
||||
if (NULL == str || count >= 1024) break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32*)buffer)[count++] = (s32)temp;
|
||||
} while (1);
|
||||
|
|
|
|||
|
|
@ -12751,7 +12751,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12770,7 +12770,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -12625,7 +12625,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12644,7 +12644,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -12613,7 +12613,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12632,7 +12632,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -12930,7 +12930,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12949,7 +12949,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
|
|
@ -12589,7 +12589,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 4096)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
buffer[count++] = (u8)temp;
|
||||
|
|
@ -12608,7 +12608,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq
|
|||
count = 0;
|
||||
do {
|
||||
str = strsep(&ptr, delim);
|
||||
if (NULL == str)
|
||||
if (NULL == str || count >= 1024)
|
||||
break;
|
||||
sscanf(str, "%i", &temp);
|
||||
((s32 *)buffer)[count++] = (s32)temp;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user