eal: fix out of bound access when no CPU available
authorDavid Marchand <david.marchand@redhat.com>
Thu, 17 Jan 2019 13:12:57 +0000 (14:12 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 17 Jan 2019 17:39:55 +0000 (18:39 +0100)
commit7b55015e1487a5f407a760cfb4d9dbf1ddacd0cc
treea10ac5f39e5a912964057bd40e33dc5a0973aed4
parentb38693b612b4cabb7cb38a4eeb036285b2b55b0b
eal: fix out of bound access when no CPU available

In the unlikely case when the dpdk application is started with no cpu
available in the [0, RTE_MAX_LCORE - 1] range, the master_lcore is
automatically chosen as RTE_MAX_LCORE which triggers an out of bound
access.

Either you have a crash then, or the initialisation fails later when
trying to pin the master thread on it.
In my test, with RTE_MAX_LCORE == 2:

$ taskset -c 2 ./master/app/testpmd --no-huge -m 512 --log-level *:debug
[...]
EAL: pthread_setaffinity_np failed
PANIC in eal_thread_init_master():
cannot set affinity
7: [./master/app/testpmd() [0x47f629]]

Bugzilla ID: 19
Fixes: 2eba8d21f3c9 ("eal: restrict cores auto detection")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
lib/librte_eal/common/eal_common_options.c