From b8617fcc511cd1cba3c32632612265b5d0f1184b Mon Sep 17 00:00:00 2001 From: Jie Zhou Date: Wed, 7 Jul 2021 13:25:38 -0700 Subject: [PATCH] eal/windows: check callback parameter of alarm functions EAL functions rte_eal_alarm_set() and rte_eal_alarm_cancel() did not for invalid parameters in Windows implementation, which is caught by the unit test alarm_autotest. Enforce parameter check to fail fast for invalid parameters. Fixes: f4cbdbc7fbd2 ("eal/windows: implement alarm API") Cc: stable@dpdk.org Signed-off-by: Jie Zhou Acked-by: Dmitry Kozlyuk --- lib/eal/windows/eal_alarm.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/eal/windows/eal_alarm.c b/lib/eal/windows/eal_alarm.c index f5bf88715a..e5dc54efb8 100644 --- a/lib/eal/windows/eal_alarm.c +++ b/lib/eal/windows/eal_alarm.c @@ -91,6 +91,12 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg) LARGE_INTEGER deadline; int ret; + if (cb_fn == NULL) { + RTE_LOG(ERR, EAL, "NULL callback\n"); + ret = -EINVAL; + goto exit; + } + /* Calculate deadline ASAP, unit of measure = 100ns. */ GetSystemTimePreciseAsFileTime(&ft); deadline.LowPart = ft.dwLowDateTime; @@ -180,6 +186,12 @@ rte_eal_alarm_cancel(rte_eal_alarm_callback cb_fn, void *cb_arg) bool executing; removed = 0; + + if (cb_fn == NULL) { + RTE_LOG(ERR, EAL, "NULL callback\n"); + return -EINVAL; + } + do { executing = false; -- 2.39.5