patch 'net/txgbe: fix out of bound access' has been queued to stable release 22.11.4
Xueming Li
xuemingl at nvidia.com
Mon Dec 11 11:12:02 CET 2023
Hi,
FYI, your patch has been queued to stable release 22.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=085a72d8f818acd9c7410e6b25352969d5fad5e2
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From 085a72d8f818acd9c7410e6b25352969d5fad5e2 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit at amd.com>
Date: Fri, 17 Nov 2023 10:12:04 +0000
Subject: [PATCH] net/txgbe: fix out of bound access
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]
Reported by SuSe CI [1] by GCC [2], possibly false positive. Error:
In function 'txgbe_host_interface_command',
inlined from 'txgbe_host_interface_command'
at ../drivers/net/txgbe/base/txgbe_mng.c:104:1,
inlined from 'txgbe_hic_reset'
at ../drivers/net/txgbe/base/txgbe_mng.c:345:9:
../drivers/net/txgbe/base/txgbe_mng.c:145:36:
error: array subscript 2 is outside array bounds ofr
'struct txgbe_hic_reset[1]' [-Werror=array-bounds=]
145 | buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
../drivers/net/txgbe/base/txgbe_mng.c: In function 'txgbe_hic_reset':
../drivers/net/txgbe/base/txgbe_mng.c:331:32:
note: at offset 8 into object 'reset_cmd' of size 8
331 | struct txgbe_hic_reset reset_cmd;
| ^~~~~~~~~
Access to buffer done based on command code, the case complained by
FW_RESET_CMD has short buffer but this code path only taken with command
0x30, so this shouldn't be a problem.
Command 0x30 no more used, removing this exception check that cause
build error.
[1]
https://build.opensuse.org/public/build/home:bluca:dpdk/openSUSE_Factory_ARM/armv7l/dpdk-20.11/_log
[2]
gcc 13.2.1 "cc (SUSE Linux) 13.2.1 20230912
Fixes: 35c90ecccfd4 ("net/txgbe: add EEPROM functions")
Reported-by: Luca Boccassi <luca.boccassi at microsoft.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit at amd.com>
Reviewed-by: Jiawen Wu <jiawenwu at trustnetic.com>
---
drivers/net/txgbe/base/txgbe_mng.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/drivers/net/txgbe/base/txgbe_mng.c b/drivers/net/txgbe/base/txgbe_mng.c
index df7145094f..029a0a1fe1 100644
--- a/drivers/net/txgbe/base/txgbe_mng.c
+++ b/drivers/net/txgbe/base/txgbe_mng.c
@@ -141,21 +141,7 @@ txgbe_host_interface_command(struct txgbe_hw *hw, u32 *buffer,
for (bi = 0; bi < dword_len; bi++)
buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
- /*
- * If there is any thing in data position pull it in
- * Read Flash command requires reading buffer length from
- * two byes instead of one byte
- */
- if (resp->cmd == 0x30) {
- for (; bi < dword_len + 2; bi++)
- buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
-
- buf_len = (((u16)(resp->cmd_or_resp.ret_status) << 3)
- & 0xF00) | resp->buf_len;
- hdr_size += (2 << 2);
- } else {
- buf_len = resp->buf_len;
- }
+ buf_len = resp->buf_len;
if (!buf_len)
goto rel_out;
--
2.25.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2023-12-11 17:56:26.253976500 +0800
+++ 0097-net-txgbe-fix-out-of-bound-access.patch 2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 4a2ba73b1d1a76a4c270aa34af22229172a7f387 Mon Sep 17 00:00:00 2001
+From 085a72d8f818acd9c7410e6b25352969d5fad5e2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]
@@ -37 +39,0 @@
-Cc: stable at dpdk.org
More information about the stable
mailing list