2010-11-30 16:22:13

by Alexander Shishkin

[permalink] [raw]
Subject: [PATCH] headers_check: better search for functions in headers

Some headers don't bother with "extern" in function prototypes,
which results in said prototypes being unnoticed and exported
to userland.

This patch slightly improves detection of such cases by checking
for C type names as well in the beginning of a line.

Signed-off-by: Alexander Shishkin <[email protected]>
CC: Stephen Hemminger <[email protected]>
CC: Andrew Morton <[email protected]>
CC: Michal Marek <[email protected]>
CC: WANG Cong <[email protected]>
CC: [email protected]
---
scripts/headers_check.pl | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 50d6cfd..e0e25a1 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -64,7 +64,7 @@ sub check_include

sub check_declarations
{
- if ($line =~m/^\s*extern\b/) {
+ if ($line =~m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
printf STDERR "$filename:$lineno: " .
"userspace cannot call function or variable " .
"defined in the kernel\n";
--
1.7.2.1.45.gb66c2


2010-11-30 16:36:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] headers_check: better search for functions in headers

On Tue, 30 Nov 2010 18:21:59 +0200 Alexander Shishkin wrote:

> Some headers don't bother with "extern" in function prototypes,
> which results in said prototypes being unnoticed and exported
> to userland.
>
> This patch slightly improves detection of such cases by checking
> for C type names as well in the beginning of a line.
>
> Signed-off-by: Alexander Shishkin <[email protected]>
> CC: Stephen Hemminger <[email protected]>
> CC: Andrew Morton <[email protected]>
> CC: Michal Marek <[email protected]>
> CC: WANG Cong <[email protected]>
> CC: [email protected]
> ---
> scripts/headers_check.pl | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
> index 50d6cfd..e0e25a1 100644
> --- a/scripts/headers_check.pl
> +++ b/scripts/headers_check.pl
> @@ -64,7 +64,7 @@ sub check_include
>
> sub check_declarations
> {
> - if ($line =~m/^\s*extern\b/) {
> + if ($line =~m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
> printf STDERR "$filename:$lineno: " .
> "userspace cannot call function or variable " .

s/call/reference/ ?

> "defined in the kernel\n";
> --


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2010-11-30 16:42:29

by Alexander Shishkin

[permalink] [raw]
Subject: Re: [PATCH] headers_check: better search for functions in headers

On Tue, Nov 30, 2010 at 08:36:07AM -0800, Randy Dunlap wrote:
> On Tue, 30 Nov 2010 18:21:59 +0200 Alexander Shishkin wrote:
>
> > Some headers don't bother with "extern" in function prototypes,
> > which results in said prototypes being unnoticed and exported
> > to userland.
> >
> > This patch slightly improves detection of such cases by checking
> > for C type names as well in the beginning of a line.
> >
> > Signed-off-by: Alexander Shishkin <[email protected]>
> > CC: Stephen Hemminger <[email protected]>
> > CC: Andrew Morton <[email protected]>
> > CC: Michal Marek <[email protected]>
> > CC: WANG Cong <[email protected]>
> > CC: [email protected]
> > ---
> > scripts/headers_check.pl | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
> > index 50d6cfd..e0e25a1 100644
> > --- a/scripts/headers_check.pl
> > +++ b/scripts/headers_check.pl
> > @@ -64,7 +64,7 @@ sub check_include
> >
> > sub check_declarations
> > {
> > - if ($line =~m/^\s*extern\b/) {
> > + if ($line =~m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
> > printf STDERR "$filename:$lineno: " .
> > "userspace cannot call function or variable " .
>
> s/call/reference/ ?

Yes, there's a mistake there, but it's unrelated to this patch.
Maybe goes in another patch?

Regards,
--
Alex

2010-12-14 16:07:37

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] headers_check: better search for functions in headers

On 30.11.2010 17:21, Alexander Shishkin wrote:
> Some headers don't bother with "extern" in function prototypes,
> which results in said prototypes being unnoticed and exported
> to userland.
>
> This patch slightly improves detection of such cases by checking
> for C type names as well in the beginning of a line.

Applied to kbuild-2.6.git#misc, thanks.

Michal