2021-07-07 13:25 (UTC-0700), Jie Zhou: > 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; >
Acked-by: Dmitry Kozlyuk <dmitry.kozl...@gmail.com>