aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/headers_check.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/headers_check.pl')
-rw-r--r--scripts/headers_check.pl11
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 5bdd9753007a..72924a7fcf1e 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -16,7 +16,7 @@
16# 16#
17# 2) It is checked that prototypes does not use "extern" 17# 2) It is checked that prototypes does not use "extern"
18# 18#
19# 3) TODO: check for leaked CONFIG_ symbols 19# 3) Check for leaked CONFIG_ symbols
20 20
21use strict; 21use strict;
22 22
@@ -36,6 +36,7 @@ foreach my $file (@files) {
36 $lineno++; 36 $lineno++;
37 check_include(); 37 check_include();
38 check_prototypes(); 38 check_prototypes();
39 check_config();
39 } 40 }
40 close FH; 41 close FH;
41} 42}
@@ -64,3 +65,11 @@ sub check_prototypes
64 printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; 65 printf STDERR "$filename:$lineno: extern's make no sense in userspace\n";
65 } 66 }
66} 67}
68
69sub check_config
70{
71 if ($line =~ m/[^a-zA-Z0-9_]+CONFIG_([a-zA-Z0-9]+)[^a-zA-Z0-9]/) {
72 printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n";
73 }
74}
75