2007-05-02 11:58:32

by Andy Green

[permalink] [raw]
Subject: [PATCH] scripts/basic/fixdep segfault on pathological string-o-death

build scripts: fixdep blows segfault on string CONFIG_MODULE seen

The string "CONFIG_MODULE" appearing anywhere in a source file causes
fixdep to segfault. This string appeared in the wild in the current
mISDN sources (I think they meant CONFIG_MODULES). But it shouldn't
segfault (esp as CONFIG_MODULE appeared in a quoted string).

Signed-off-by: Andy Green <[email protected]>
---
scripts/basic/fixdep.c | 2 ++
1 file changed, 2 insertions(+)

Index: 2.6.21-1.3116.fc7-i686/scripts/basic/fixdep.c
===================================================================
--- 2.6.21-1.3116.fc7-i686.orig/scripts/basic/fixdep.c
+++ 2.6.21-1.3116.fc7-i686/scripts/basic/fixdep.c
@@ -249,6 +249,8 @@ void parse_config_file(char *map, size_t
found:
if (!memcmp(q - 7, "_MODULE", 7))
q -= 7;
+ if( (q-p-7) < 0 )
+ continue;
use_config(p+7, q-p-7);
}
}


2007-05-02 19:36:27

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] scripts/basic/fixdep segfault on pathological string-o-death

On Wed, May 02, 2007 at 12:49:06PM +0100, Andy Green wrote:
> build scripts: fixdep blows segfault on string CONFIG_MODULE seen
>
> The string "CONFIG_MODULE" appearing anywhere in a source file causes
> fixdep to segfault. This string appeared in the wild in the current
> mISDN sources (I think they meant CONFIG_MODULES). But it shouldn't
> segfault (esp as CONFIG_MODULE appeared in a quoted string).
>
> Signed-off-by: Andy Green <[email protected]>

Applied and forwarded to [email protected].

Thanks,
Sam

> ---
> scripts/basic/fixdep.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> Index: 2.6.21-1.3116.fc7-i686/scripts/basic/fixdep.c
> ===================================================================
> --- 2.6.21-1.3116.fc7-i686.orig/scripts/basic/fixdep.c
> +++ 2.6.21-1.3116.fc7-i686/scripts/basic/fixdep.c
> @@ -249,6 +249,8 @@ void parse_config_file(char *map, size_t
> found:
> if (!memcmp(q - 7, "_MODULE", 7))
> q -= 7;
> + if( (q-p-7) < 0 )
> + continue;
> use_config(p+7, q-p-7);
> }
> }
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/