eal/windows alarm APIs rte_eal_alarm_set and rte_eal_alarm_cancel did not check parameters to fail fast for invalid parameters, which caught by DPDK UT alarm_autotest.
Enforce eal/windows alarm APIs parameter check to fail fast for invalid parameters. Fixes: f4cbdbc7fbd2 ("eal/windows: implement alarm API") Cc: sta...@dpdk.org Signed-off-by: Jie Zhou <j...@linux.microsoft.com> --- V2 changes: - Remove API parameter check on arbitrary 'us' range - Do explicit NULL cb_fn check --- 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.31.0.vfs.0.1