From 0c0582d3ce48e4b3d23ea0d86c6262e437cdce4b Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Thu, 23 Mar 2017 14:12:01 +0800 Subject: [PATCH] event: Verify lcore is valid when registering poller If we do not do a bounds check, this can run off the end of an array. Change-Id: I43cc4848fca7d68218e507db20e33823f8b550e4 Signed-off-by: Ziye Yang --- lib/event/reactor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/event/reactor.c b/lib/event/reactor.c index ef449bfcc..1228c5921 100644 --- a/lib/event/reactor.c +++ b/lib/event/reactor.c @@ -722,6 +722,12 @@ spdk_poller_register(struct spdk_poller **ppoller, spdk_poller_fn fn, void *arg, abort(); } + if (lcore >= RTE_MAX_LCORE) { + SPDK_ERRLOG("Attempted use lcore %u larger than max lcore %u\n", + lcore, RTE_MAX_LCORE - 1); + abort(); + } + *ppoller = poller; reactor = spdk_reactor_get(lcore);