On Mon, 24 Jan 2022 10:17:23 +0000 "Dumitrescu, Cristian" <cristian.dumitre...@intel.com> wrote:
> > -----Original Message----- > > From: Stephen Hemminger <step...@networkplumber.org> > > Sent: Monday, January 24, 2022 12:04 AM > > To: dev@dpdk.org > > Cc: Stephen Hemminger <step...@networkplumber.org>; Dumitrescu, > > Cristian <cristian.dumitre...@intel.com> > > Subject: [PATCH 05/82] examples/ip_pipeline: remove unnecessary NULL > > checks > > > > Remove redundant NULL pointer checks before free functions > > found by nullfree.cocci > > > > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > > --- > > examples/ip_pipeline/cli.c | 12 ++++-------- > > examples/ip_pipeline/cryptodev.c | 6 ++---- > > examples/ip_pipeline/thread.c | 6 ++---- > > 3 files changed, 8 insertions(+), 16 deletions(-) > > > > Hi Stephen, > > The rte_ring_free() and rte_mempool_free() do not state in their API > description that freeing a NULL pointer is harmless. Before pushing these > changes, please add the necessary note in the API header files for these > functions. Okay, will fix the documentation then. The implemeentation has always done the right thing. > In the absence of the clear note in their API description, the user is forced > to check for the NULL pointer. I agree that the implementation of these > functions does the right think and exits early when the input pointer is > NULL, but there is no guarantee that the implementation is not going to > change. Agree? No. I don't agree. All XXX_free() functions should accept NULL and handle it in the same way. Any inconsistency is an obvious source of bugs. > > The stdlib free() and the rte_free() do have the clear API description note > that freeing a NULL object is harmless, so removing the NULL check before > their call is indeed safe. Will add first patch to fix the documentation to match the current implementation.