From 27b360f1b561eb12b5e0383a2d2bb7f5c77b7505 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 9 Feb 2022 11:17:14 -0800 Subject: [PATCH] devtools: add script to fix unnecessary null checks This script is based on the idea of the nullfree script in the Linux kernel. It finds cases where a check for null pointer is done, but is unnecessary because the function already handles NULL pointer. Basic example: if (x->buf) rte_free(x->buf); can be reduced to: rte_free(x->buf); Signed-off-by: Stephen Hemminger --- devtools/cocci/nullfree.cocci | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 devtools/cocci/nullfree.cocci diff --git a/devtools/cocci/nullfree.cocci b/devtools/cocci/nullfree.cocci new file mode 100644 index 0000000000..363b6149ac --- /dev/null +++ b/devtools/cocci/nullfree.cocci @@ -0,0 +1,33 @@ +// +// Remove unnecessary NULL pointer checks before free functions +// All these functions work like libc free which allows +// free(NULL) as a no-op. +// +@@ +expression E; +@@ +( +- if (E != NULL) free(E); ++ free(E); +| +- if (E != NULL) rte_bitmap_free(E); ++ rte_bitmap_free(E); +| +- if (E != NULL) rte_free(E); ++ rte_free(E); +| +- if (E != NULL) rte_hash_free(E); ++ rte_hash_free(E); +| +- if (E != NULL) rte_ring_free(E); ++ rte_ring_free(E); +| +- if (E != NULL) rte_pktmbuf_free(E); ++ rte_pktmbuf_free(E); +| +- if (E != NULL) rte_mempool_free(E); ++ rte_mempool_free(E); +| +- if (E != NULL) rte_kvargs_free(E); ++ rte_kvargs_free(E); +) -- 2.39.5