All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] checkpatch.pl: Add warning for harmful goto labels
@ 2015-03-21 21:16 L. Alberto Giménez
  2015-03-21 21:40 ` Richard Weinberger
  2015-03-21 21:41 ` Peter Hurley
  0 siblings, 2 replies; 8+ messages in thread
From: L. Alberto Giménez @ 2015-03-21 21:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andy Whitcroft, Joe Perches

Issue a warning for too broad goto labels that may make the code to
follow the wrong exit path, thus causing hard to debug bugs.

Signed-off-by: L. Alberto Giménez <agimenez@sysvalve.es>
---
 scripts/checkpatch.pl | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index d124359..e8ce220 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -444,6 +444,11 @@ our $allowed_asm_includes = qr{(?x:
 )};
 # memory.h: ARM has a custom one
 
+our @goto_harmful_labels = qw(
+	out
+	fail
+	);
+
 # Load common spelling mistakes and build regular expression list.
 my $misspellings;
 my %spelling_fix;
@@ -2702,6 +2707,14 @@ sub process {
 			}
 		}
 
+		if ($sline =~ /goto (.*);/) {
+			my $label = $1;
+			if (grep { /^$label$/ } @goto_harmful_labels) {
+				WARN("HARMFUL_GOTO_LABEL",
+					"Goto label '$label' is considered harmful\n" . $herecurr);
+			}
+		}
+
 # discourage the addition of CONFIG_EXPERIMENTAL in #if(def).
 		if ($line =~ /^\+\s*\#\s*if.*\bCONFIG_EXPERIMENTAL\b/) {
 			WARN("CONFIG_EXPERIMENTAL",
-- 
2.1.4


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

end of thread, other threads:[~2015-03-22 12:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-21 21:16 [PATCH] checkpatch.pl: Add warning for harmful goto labels L. Alberto Giménez
2015-03-21 21:40 ` Richard Weinberger
2015-03-21 22:06   ` L. Alberto Giménez
2015-03-21 22:12     ` Richard Weinberger
2015-03-22  2:56       ` Joe Perches
2015-03-22 12:16         ` L. Alberto Giménez
2015-03-21 21:41 ` Peter Hurley
2015-03-21 22:09   ` L. Alberto Giménez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.