examples/exception_path: fix out-of-bounds read
authorBruce Richardson <bruce.richardson@intel.com>
Mon, 16 Jul 2018 16:03:47 +0000 (17:03 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 26 Jul 2018 17:53:56 +0000 (19:53 +0200)
When printing out stats from the exception_path app, all possible
lcore_ids are iterated. However, the app only supports up to 64 cores.
To prevent possible errors, and to remove coverity warnings,
explicitly check for out-of-range lcore ids before printing.

Coverity issue: 268335
Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
examples/exception_path/main.c

index 0b59f6b..440422b 100644 (file)
@@ -131,6 +131,9 @@ print_stats(void)
               " Lcore    Port            RX            TX    Dropped on TX\n"
               "-------  ------  ------------  ------------  ---------------\n");
        RTE_LCORE_FOREACH(i) {
+               /* limit ourselves to application supported cores only */
+               if (i >= APP_MAX_LCORE)
+                       break;
                printf("%6u %7u %13"PRIu64" %13"PRIu64" %16"PRIu64"\n",
                       i, (unsigned)port_ids[i],
                       lcore_stats[i].rx, lcore_stats[i].tx,