Thread (3 messages) 3 messages, 2 authors, 2025-08-12

Re: [PATCH net] Octeontx2-af: Fix negative array index read warning

From: Chandra Mohan Sundar <hidden>
Date: 2025-08-12 19:01:35
Also in: linux-kernel-mentees, lkml

On Mon, 11 Aug 2025 16:37:14 -0700, Joe Damato wrote:
A couple pieces of feedback for you:
1. Since this is a fixes it needs a Fixes tag and a commit SHA that it is fixing.
Thank you very much for your feedback.I will add the Fixes tag as suggested.
2. cgx_get_cgxid is called in 3 places, so your patch would probably need to
  be expanded to fix all uses?
Thanks for the suggestion.
I can add a similar check in cgxlmac_to_pf() to check if cgx_id is
negative and return an error.
Overall though, did you somehow trigger this issue?

It seems like all cases where cgx_get_cgxid is used it would be extremely
difficult (maybe impossible?) for cgxd to be NULL and for it to return a
negative value.
I could not reproduce a scenario where cgx_get_cgxid returns a
negative value. However, this issue was reported by the Black Duck
Coverity scan.
The fix was made to cover all possible return paths.

Please advise if you think there’s a better way to address it.

Thanks,
Chandra Mohan Sundar


On Tue, Aug 12, 2025 at 5:07 AM Joe Damato [off-list ref] wrote:
On Sun, Aug 10, 2025 at 11:33:27PM +0530, Chandra Mohan Sundar wrote:
quoted
The cgx_get_cgxid function may return a negative value.
Using this value directly as an array index triggers Coverity warnings.

Validate the returned value and handle the case gracefully.

Signed-off-by: Chandra Mohan Sundar <redacted>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 8375f18c8e07..b14de93a2481 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -3005,6 +3005,8 @@ static int cgx_print_fwdata(struct seq_file *s, int lmac_id)
              return -EAGAIN;

      cgx_id = cgx_get_cgxid(cgxd);
+     if (cgx_id < 0)
+             return -EINVAL;

      if (rvu->hw->lmac_per_cgx == CGX_LMACS_USX)
              fwdata =  &rvu->fwdata->cgx_fw_data_usx[cgx_id][lmac_id];
A couple pieces of feedback for you:

1. Since this is a fixes it needs a Fixes tag and a commit SHA that it is fixing.
2. cgx_get_cgxid is called in 3 places, so your patch would probably need to
   be expanded to fix all uses?

Overall though, did you somehow trigger this issue?

It seems like all cases where cgx_get_cgxid is used it would be extremely
difficult (maybe impossible?) for cgxd to be NULL and for it to return a
negative value.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help