mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7921: fix a potential clc buffer length underflow
The buf_len is used to limit the iterations for retrieving the country power setting and may underflow under certain conditions due to changes in the power table in CLC. This underflow leads to an almost infinite loop or an invalid power setting resulting in driver initialization failure. Cc: [email protected] Fixes: fa6ad88e023d ("wifi: mt76: mt7921: fix country count limitation for CLC") Signed-off-by: Leon Yen <[email protected]> Signed-off-by: Ming Yen Hsieh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -1353,6 +1353,9 @@ int __mt7921_mcu_set_clc(struct mt792x_dev *dev, u8 *alpha2,
|
||||
u16 len = le16_to_cpu(rule->len);
|
||||
u16 offset = len + sizeof(*rule);
|
||||
|
||||
if (buf_len < offset)
|
||||
break;
|
||||
|
||||
pos += offset;
|
||||
buf_len -= offset;
|
||||
if (rule->alpha2[0] != alpha2[0] ||
|
||||
|
||||
Reference in New Issue
Block a user