43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
|
From c7a4ff80722e9237a4c504106d21ba5ca27d8df2 Mon Sep 17 00:00:00 2001
|
||
|
From: Helin Zhang <helin.zhang@intel.com>
|
||
|
Date: Sat, 12 Mar 2016 00:50:58 +0800
|
||
|
Subject: [PATCH] i40e: fix overflow
|
||
|
|
||
|
The array 'ptype_table' was defined in depth of 'UINT8_MAX' which
|
||
|
is 255, while the querying index could be from 0 to 255. The issue
|
||
|
can be fixed with expanding the array to one more element.
|
||
|
|
||
|
Fixes: 9571ea028489 ("i40e: replace some offload flags with unified packet type")
|
||
|
|
||
|
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
|
||
|
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
||
|
---
|
||
|
drivers/net/i40e/i40e_rxtx.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
|
||
|
index 8931b8e..c10eeff 100644
|
||
|
--- a/drivers/net/i40e/i40e_rxtx.c
|
||
|
+++ b/drivers/net/i40e/i40e_rxtx.c
|
||
|
@@ -192,7 +192,7 @@ i40e_get_iee15888_flags(struct rte_mbuf *mb, uint64_t qword)
|
||
|
static inline uint32_t
|
||
|
i40e_rxd_pkt_type_mapping(uint8_t ptype)
|
||
|
{
|
||
|
- static const uint32_t ptype_table[UINT8_MAX] __rte_cache_aligned = {
|
||
|
+ static const uint32_t type_table[UINT8_MAX + 1] __rte_cache_aligned = {
|
||
|
/* L2 types */
|
||
|
/* [0] reserved */
|
||
|
[1] = RTE_PTYPE_L2_ETHER,
|
||
|
@@ -718,7 +718,7 @@ i40e_rxd_pkt_type_mapping(uint8_t ptype)
|
||
|
/* All others reserved */
|
||
|
};
|
||
|
|
||
|
- return ptype_table[ptype];
|
||
|
+ return type_table[ptype];
|
||
|
}
|
||
|
|
||
|
#define I40E_RX_DESC_EXT_STATUS_FLEXBH_MASK 0x03
|
||
|
--
|
||
|
2.6.2
|
||
|
|