realtek: rtl930x: Fix out-of-bounds check in LED set configuration
of_property_count_u32_elems returns the number of u32 and not the number of
bytes. It must therefore be checked against the number of u32 in set_config
and not the bytes in set_config.
Fixes: 2cfb1ecf10 ("rtl930x: Rework per port LED configuration")
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20300
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
ebb79d0f84
commit
fb01b901e7
@ -2392,10 +2392,10 @@ static void rtl930x_led_init(struct rtl838x_switch_priv *priv)
|
||||
sprintf(set_name, "led_set%d", set);
|
||||
leds_in_this_set = of_property_count_u32_elems(node, set_name);
|
||||
|
||||
if (leds_in_this_set <= 0 || leds_in_this_set > sizeof(set_config)) {
|
||||
if (leds_in_this_set <= 0 || leds_in_this_set > ARRAY_SIZE(set_config)) {
|
||||
if (leds_in_this_set != -EINVAL) {
|
||||
dev_err(dev, "%s invalid, skipping this set, leds_in_this_set=%d, should be (0, %d]\n",
|
||||
set_name, leds_in_this_set, sizeof(set_config));
|
||||
set_name, leds_in_this_set, ARRAY_SIZE(set_config));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user