Git development
 help / color / mirror / Atom feed
* [PATCH] cocci: remove risky "if (!E) free(E)" conversion
@ 2026-09-11 22:09 Junio C Hamano
  2026-09-11 22:21 ` [PATCH] cocci: FREE_AND_NULL(E) is safe to call on NULL Junio C Hamano
  2026-09-12  7:13 ` [PATCH] cocci: remove risky "if (!E) free(E)" conversion René Scharfe
  0 siblings, 2 replies; 5+ messages in thread
From: Junio C Hamano @ 2026-09-11 22:09 UTC (permalink / raw)
  To: git

The current cocci patches try to convert

	if (!E)
		free(E);

into an unconditional call to free(E), with the rationale

    cocci: detect useless free(3) calls

    Add a semantic patch for removing checks that cause free(3) to only be
    called with a NULL pointer, as that must be a programming mistake.

which came from ec6cd14c7a (cocci: detect useless free(3) calls,
2017-02-11).

Leaving _something_ in ALL.patch output to draw programmers'
attention is a good thing, but this changes a piece of code that is
originally a no-op to do something else, which may be even worse.

We could change it to

	if (!E)
		BUG("free(E) is certainly not what we meant to write");

to force programmers to think.  But it probably is safer to just
rewrite one form of no-op into a simpler form of no-op.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 tools/coccinelle/free.cocci | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/tools/coccinelle/free.cocci b/tools/coccinelle/free.cocci
index 03799e1908..3dfaae9dd8 100644
--- a/tools/coccinelle/free.cocci
+++ b/tools/coccinelle/free.cocci
@@ -8,16 +8,6 @@ expression E;
   commit_list_free(E);
 )
 
-@@
-expression E;
-@@
-- if (!E)
-(
-  free(E);
-|
-  commit_list_free(E);
-)
-
 @@
 expression E;
 @@
-- 
2.56.0-rc0-143-g1fea62d0ca


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-09-13 10:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 22:09 [PATCH] cocci: remove risky "if (!E) free(E)" conversion Junio C Hamano
2026-09-11 22:21 ` [PATCH] cocci: FREE_AND_NULL(E) is safe to call on NULL Junio C Hamano
2026-09-12  7:13 ` [PATCH] cocci: remove risky "if (!E) free(E)" conversion René Scharfe
2026-09-12 19:07   ` Junio C Hamano
2026-09-13 10:45     ` René Scharfe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox