Commit c407eccf authored by Dan Carpenter's avatar Dan Carpenter Committed by Ziyang Xuan
Browse files

net: dsa: fix a crash if ->get_sset_count() fails

stable inclusion
from stable-v4.19.193
commit 0f2cb08c57edefb0e7b5045e0e3e9980a3d3aa37
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9BHSG


CVE: CVE-2021-47159

--------------------------------

commit a269333f upstream.

If ds->ops->get_sset_count() fails then it "count" is a negative error
code such as -EOPNOTSUPP.  Because "i" is an unsigned int, the negative
error code is type promoted to a very high value and the loop will
corrupt memory until the system crashes.

Fix this by checking for error codes and changing the type of "i" to
just int.

Fixes: badf3ada ("net: dsa: Provide CPU port statistics to master netdev")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarZiyang Xuan <william.xuanziyang@huawei.com>
parent 55d14eb3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment