The port mask parsing in testpmd allowed up to 64 bits to be processed, even if RTE_MAX_ETHPORTS is set to a max of 32. Fix this by only processing up to min(RTE_MAX_ETHPORTS,64) bits of the mask.
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com> --- app/test-pmd/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 69a83c2..c9d1e1c 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1440,7 +1440,7 @@ set_fwd_ports_mask(uint64_t portmask) return; } nb_pt = 0; - for (i = 0; i < 64; i++) { + for (i = 0; i < 64 && i < RTE_MAX_ETHPORTS; i++) { if (! ((uint64_t)(1ULL << i) & portmask)) continue; portlist[nb_pt++] = i; -- 1.9.3