aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2008-12-27 13:52:20 -0500
committerSam Ravnborg <sam@ravnborg.org>2009-01-02 14:43:23 -0500
commit7e557a2509f9e1477c10295b74e29e4e93fa2392 (patch)
tree7378b0bf583980ccf2e06b4bb00c6204b2c0d4ad /scripts
parent46b8af50ba5c072b74740c5fa8ba08e6eabb22f8 (diff)
kbuild: check for leaked CONFIG_ symbols to userspace
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts')
-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