examples/exception_path: fix possible out-of-bounds read

Message ID 20180716160347.35376-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series examples/exception_path: fix possible out-of-bounds read |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Bruce Richardson July 16, 2018, 4:03 p.m. UTC
  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 | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Thomas Monjalon July 26, 2018, 5:56 p.m. UTC | #1
16/07/2018 18:03, Bruce Richardson:
> 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>

Applied, thanks
  

Patch

diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c
index 0b59f6b3f..440422bc8 100644
--- a/examples/exception_path/main.c
+++ b/examples/exception_path/main.c
@@ -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,