> -----Original Message----- > From: Ferruh Yigit [mailto:[email protected]] > Sent: Thursday, October 15, 2020 1:03 AM > To: wangyunjian <[email protected]>; [email protected] > Cc: [email protected]; [email protected]; [email protected]; > Lilijun (Jerry) <[email protected]>; xudingke <[email protected]>; > [email protected] > Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] eal: fix dereference before null > check > > On 9/19/2020 11:34 AM, wangyunjian wrote: > > From: Yunjian Wang <[email protected]> > > > > This patch fixes (dereference after null check) coverity issue. > > The intr_handle may be a null pointer which led to this issue. > > > > Coverity issue: 357695, 357751 > > Fixes: 05c4105738d8 ("trace: add interrupt tracepoints") > > Cc: [email protected] > > > > Signed-off-by: Yunjian Wang <[email protected]> > > --- > > lib/librte_eal/freebsd/eal_interrupts.c | 6 ++++-- > > lib/librte_eal/linux/eal_interrupts.c | 6 ++++-- > > 2 files changed, 8 insertions(+), 4 deletions(-) > > > > diff --git a/lib/librte_eal/freebsd/eal_interrupts.c > > b/lib/librte_eal/freebsd/eal_interrupts.c > > index 6d53d33c8..028ab457a 100644 > > --- a/lib/librte_eal/freebsd/eal_interrupts.c > > +++ b/lib/librte_eal/freebsd/eal_interrupts.c > > @@ -380,7 +380,8 @@ rte_intr_enable(const struct rte_intr_handle > *intr_handle) > > } > > > > out: > > - rte_eal_trace_intr_enable(intr_handle, rc); > > + if (intr_handle) > > + rte_eal_trace_intr_enable(intr_handle, rc); > > return rc; > > } > > > > @@ -418,7 +419,8 @@ rte_intr_disable(const struct rte_intr_handle > *intr_handle) > > break; > > } > > out: > > - rte_eal_trace_intr_disable(intr_handle, rc); > > + if (intr_handle) > > + rte_eal_trace_intr_disable(intr_handle, rc); > > return rc; > > } > > > > diff --git a/lib/librte_eal/linux/eal_interrupts.c > > b/lib/librte_eal/linux/eal_interrupts.c > > index 13db5c4e8..e46443873 100644 > > --- a/lib/librte_eal/linux/eal_interrupts.c > > +++ b/lib/librte_eal/linux/eal_interrupts.c > > @@ -725,7 +725,8 @@ rte_intr_enable(const struct rte_intr_handle > *intr_handle) > > break; > > } > > out: > > - rte_eal_trace_intr_enable(intr_handle, rc); > > + if (intr_handle) > > + rte_eal_trace_intr_enable(intr_handle, rc); > > return rc; > > It looks like whole function requires 'intr_handle' to be not NULL, so what do > you think add following at the very beginning of the function and remove other > 'intr_handle' NULL checks from function: > > if (intr_handle == NULL) > return -1;
Agree, I will add them in next version. Thanks, Yunjian > > > } > > > > @@ -852,7 +853,8 @@ rte_intr_disable(const struct rte_intr_handle > *intr_handle) > > break; > > } > > out: > > - rte_eal_trace_intr_disable(intr_handle, rc); > > + if (intr_handle) > > + rte_eal_trace_intr_disable(intr_handle, rc); > > return rc; > > } > > > >

