Incorrect ptypes list causes buffer overflow for Address Sanitizer
run and a tap device. The last element in the ptypes lists to be
to "RTE_PTYPE_UNKNOWN" for rte_eth_dev_get_supported_ptypes().
In rte_eth_dev_get_supported_ptypes(), the loop iterates until it
finds "RTE_PTYPE_UNKNOWN" to detect last element of the ptypes array.
Fix tap_dev_supported_ptypes_get() method to return correct lists.

Fixes: 0849ac3b6122 ("net/tap: add packet type management")
Cc: sta...@dpdk.org

Signed-off-by: Sivaramakrishnan Venkat <venkatx.sivaramakrish...@intel.com>
---
 drivers/net/tap/rte_eth_tap.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index b41fa971cb..3fa03cdbee 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -1803,6 +1803,7 @@ tap_dev_supported_ptypes_get(struct rte_eth_dev *dev 
__rte_unused)
                RTE_PTYPE_L4_UDP,
                RTE_PTYPE_L4_TCP,
                RTE_PTYPE_L4_SCTP,
+               RTE_PTYPE_UNKNOWN
        };
 
        return ptypes;
-- 
2.25.1

Reply via email to