Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH 5.15.y] net: dsa: sja1105: fix kasan out-of-bounds warning in sja1105_table_delete_entry()
@ 2026-05-25  3:18 Rajani Kantha
  2026-05-25 15:33 ` Sasha Levin
  0 siblings, 1 reply; 2+ messages in thread
From: Rajani Kantha @ 2026-05-25  3:18 UTC (permalink / raw)
  To: vladimir.oltean, horms, kuba; +Cc: stable

From: Vladimir Oltean <vladimir.oltean@nxp.com>

[ Upstream commit 5f2b28b79d2d1946ee36ad8b3dc0066f73c90481 ]

There are actually 2 problems:
- deleting the last element doesn't require the memmove of elements
  [i + 1, end) over it. Actually, element i+1 is out of bounds.
- The memmove itself should move size - i - 1 elements, because the last
  element is out of bounds.

The out-of-bounds element still remains out of bounds after being
accessed, so the problem is only that we touch it, not that it becomes
in active use. But I suppose it can lead to issues if the out-of-bounds
element is part of an unmapped page.

Fixes: 6666cebc5e30 ("net: dsa: sja1105: Add support for VLAN operations")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250318115716.2124395-4-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Rajani Kantha <681739313@139.com>
---
 drivers/net/dsa/sja1105/sja1105_static_config.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/sja1105/sja1105_static_config.c b/drivers/net/dsa/sja1105/sja1105_static_config.c
index baba204ad62f..2ac91fe2a79b 100644
--- a/drivers/net/dsa/sja1105/sja1105_static_config.c
+++ b/drivers/net/dsa/sja1105/sja1105_static_config.c
@@ -1921,8 +1921,10 @@ int sja1105_table_delete_entry(struct sja1105_table *table, int i)
 	if (i > table->entry_count)
 		return -ERANGE;
 
-	memmove(entries + i * entry_size, entries + (i + 1) * entry_size,
-		(table->entry_count - i) * entry_size);
+	if (i + 1 < table->entry_count) {
+		memmove(entries + i * entry_size, entries + (i + 1) * entry_size,
+			(table->entry_count - i - 1) * entry_size);
+	}
 
 	table->entry_count--;
 
-- 
2.35.3



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 5.15.y] net: dsa: sja1105: fix kasan out-of-bounds warning in sja1105_table_delete_entry()
  2026-05-25  3:18 [PATCH 5.15.y] net: dsa: sja1105: fix kasan out-of-bounds warning in sja1105_table_delete_entry() Rajani Kantha
@ 2026-05-25 15:33 ` Sasha Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2026-05-25 15:33 UTC (permalink / raw)
  To: vladimir.oltean, horms, kuba; +Cc: Sasha Levin, stable, Rajani Kantha

On Mon, May 25, 2026 at 11:18:40AM +0800, Rajani Kantha wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
>
> [ Upstream commit 5f2b28b79d2d1946ee36ad8b3dc0066f73c90481 ]
>
> There are actually 2 problems:
> - deleting the last element doesn't require the memmove of elements
>   [i + 1, end) over it. Actually, element i+1 is out of bounds.
> - The memmove itself should move size - i - 1 elements, because the last
>   element is out of bounds.

Queued for 5.15, and also picked to 5.10 since the Fixes: commit is
present there too.

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-25 15:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-25  3:18 [PATCH 5.15.y] net: dsa: sja1105: fix kasan out-of-bounds warning in sja1105_table_delete_entry() Rajani Kantha
2026-05-25 15:33 ` Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox