net: check segment pointer in raw checksum processing

If the overall pkt_len and segment lengths are out of agreement,
it is possible for the seg to be NULL after the loop. Add assert
to check this condition in debug builds. Otherwise, return failure.

Fixes: c442fed81b ("net: add function to calculate checksum in mbuf")
Cc: stable@dpdk.org

Signed-off-by: Chas Williams <3chas3@gmail.com>
This commit is contained in:
Chas Williams 2020-10-01 06:22:44 -04:00 committed by Thomas Monjalon
parent 1736219b3c
commit d98b0fc1af

View File

@ -225,6 +225,9 @@ rte_raw_cksum_mbuf(const struct rte_mbuf *m, uint32_t off, uint32_t len,
break;
off -= seglen;
}
RTE_ASSERT(seg != NULL);
if (seg == NULL)
return -1;
seglen -= off;
buf = rte_pktmbuf_mtod_offset(seg, const char *, off);
if (seglen >= len) {