Commit 59fe6517 authored by Oleksij Rempel's avatar Oleksij Rempel Committed by Paolo Abeni

net: dsa: microchip: Fix uninitialized var in ksz9477_acl_move_entries()

Address an issue in ksz9477_acl_move_entries() where, in the scenario
(src_idx == dst_idx), ksz9477_validate_and_get_src_count() returns 0,
leading to usage of uninitialized src_count and dst_count variables,
which causes undesired behavior as it attempts to move ACL entries
around.

Fixes: 002841be ("net: dsa: microchip: Add partial ACL support for ksz9477 switches")
Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Suggested-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/20231006115822.144152-1-o.rempel@pengutronix.deSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent c41a38ef
...@@ -420,10 +420,6 @@ static int ksz9477_validate_and_get_src_count(struct ksz_device *dev, int port, ...@@ -420,10 +420,6 @@ static int ksz9477_validate_and_get_src_count(struct ksz_device *dev, int port,
return -EINVAL; return -EINVAL;
} }
/* Nothing to do */
if (src_idx == dst_idx)
return 0;
/* Validate if the source entries are contiguous */ /* Validate if the source entries are contiguous */
ret = ksz9477_acl_get_cont_entr(dev, port, src_idx); ret = ksz9477_acl_get_cont_entr(dev, port, src_idx);
if (ret < 0) if (ret < 0)
...@@ -556,6 +552,10 @@ static int ksz9477_acl_move_entries(struct ksz_device *dev, int port, ...@@ -556,6 +552,10 @@ static int ksz9477_acl_move_entries(struct ksz_device *dev, int port,
struct ksz9477_acl_entries *acles = &acl->acles; struct ksz9477_acl_entries *acles = &acl->acles;
int src_count, ret, dst_count; int src_count, ret, dst_count;
/* Nothing to do */
if (src_idx == dst_idx)
return 0;
ret = ksz9477_validate_and_get_src_count(dev, port, src_idx, dst_idx, ret = ksz9477_validate_and_get_src_count(dev, port, src_idx, dst_idx,
&src_count, &dst_count); &src_count, &dst_count);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment