From: Olivier Matz Date: Mon, 11 Sep 2017 14:57:22 +0000 (+0200) Subject: net: fix inner L2 length in packet type parser X-Git-Tag: spdx-start~2132 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b081c1dd2ec64c4f3cc18723ccb7aa1601985bb0;p=dpdk.git net: fix inner L2 length in packet type parser The inner L2 length returned by rte_net_get_ptype() is not properly initialized. If the caller does not zero the header lengths structure, the inner_l2 field will be undefined. Fix it by initializing inner_l2 to 0 when parsing a inner layer. Fixes: 2c15c5377da2 ("net: support NVGRE in software packet type parser") Cc: stable@dpdk.org Signed-off-by: Olivier Matz --- diff --git a/lib/librte_net/rte_net.c b/lib/librte_net/rte_net.c index a8c7aff9cd..a3ca040327 100644 --- a/lib/librte_net/rte_net.c +++ b/lib/librte_net/rte_net.c @@ -396,6 +396,7 @@ uint32_t rte_net_get_ptype(const struct rte_mbuf *m, if ((layers & RTE_PTYPE_INNER_L2_MASK) == 0) return pkt_type; + hdr_lens->inner_l2_len = 0; if (proto == rte_cpu_to_be_16(ETHER_TYPE_TEB)) { eh = rte_pktmbuf_read(m, off, sizeof(*eh), &eh_copy); if (unlikely(eh == NULL))