* re: params: <level>_initcall-like kernel parameters
@ 2012-02-02 9:56 Dan Carpenter
2012-02-02 11:08 ` Pawel Moll
0 siblings, 1 reply; 5+ messages in thread
From: Dan Carpenter @ 2012-02-02 9:56 UTC (permalink / raw)
To: pawel.moll; +Cc: linux-kernel
Hello Pawel Moll,
The patch b41c2e271944: "params: <level>_initcall-like kernel
parameters" from Dec 12, 2011, leads to the following warning:
init/main.c:749 do_initcall_level()
error: buffer overflow 'initcall_level_names' 7 <= 7
743 static void __init do_initcall_level(int level)
744 {
745 extern const struct kernel_param __start___param[], __stop___param[];
746 initcall_t *fn;
747
748 strcpy(static_command_line, saved_command_line);
749 parse_args(initcall_level_names[level],
^^^^^^^^^^^^^^^^^^^^^^^^^^^
initcall_level_names[] has 7 elements so initcall_level_names[7] is past
the end of the array.
750 static_command_line, __start___param,
751 __stop___param - __start___param,
752 level, level,
753 ignore_unknown_bootoption);
754
755 for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++)
756 do_one_initcall(*fn);
757 }
758
759 static void __init do_initcalls(void)
760 {
761 int level;
762
763 for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
initcall_levels[] has 9 elements so level is 0-7 here.
764 do_initcall_level(level);
765 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] 5+ messages in thread* re: params: <level>_initcall-like kernel parameters
2012-02-02 9:56 params: <level>_initcall-like kernel parameters Dan Carpenter
@ 2012-02-02 11:08 ` Pawel Moll
2012-02-02 17:01 ` Dan Carpenter
2012-02-06 22:16 ` Rusty Russell
0 siblings, 2 replies; 5+ messages in thread
From: Pawel Moll @ 2012-02-02 11:08 UTC (permalink / raw)
To: Dan Carpenter; +Cc: linux-kernel@vger.kernel.org, Rusty Russell
Morning,
On Thu, 2012-02-02 at 09:56 +0000, Dan Carpenter wrote:
> The patch b41c2e271944: "params: <level>_initcall-like kernel
> parameters" from Dec 12, 2011, leads to the following warning:
> init/main.c:749 do_initcall_level()
> error: buffer overflow 'initcall_level_names' 7 <= 7
>
> 743 static void __init do_initcall_level(int level)
> 744 {
> 745 extern const struct kernel_param __start___param[], __stop___param[];
> 746 initcall_t *fn;
> 747
> 748 strcpy(static_command_line, saved_command_line);
> 749 parse_args(initcall_level_names[level],
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> initcall_level_names[] has 7 elements so initcall_level_names[7] is past
> the end of the array.
>
> 750 static_command_line, __start___param,
> 751 __stop___param - __start___param,
> 752 level, level,
> 753 ignore_unknown_bootoption);
> 754
> 755 for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++)
> 756 do_one_initcall(*fn);
> 757 }
> 758
> 759 static void __init do_initcalls(void)
> 760 {
> 761 int level;
> 762
> 763 for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> initcall_levels[] has 9 elements so level is 0-7 here.
>
> 764 do_initcall_level(level);
> 765 }
You're right, of course! The initcall_level_names is missing "early
parameters" string as the first element of the array. Well spotted - may
I asked what tool did you use to get this message?
Rusty, do you want me to re-send the patch with this string fixed? I
think you have rebased it on top of your bool-param series?
Thanks for your time!
Paweł
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: params: <level>_initcall-like kernel parameters
2012-02-02 11:08 ` Pawel Moll
@ 2012-02-02 17:01 ` Dan Carpenter
2012-02-06 22:16 ` Rusty Russell
1 sibling, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2012-02-02 17:01 UTC (permalink / raw)
To: Pawel Moll; +Cc: linux-kernel@vger.kernel.org, Rusty Russell
[-- Attachment #1: Type: text/plain, Size: 449 bytes --]
On Thu, Feb 02, 2012 at 11:08:57AM +0000, Pawel Moll wrote:
> You're right, of course! The initcall_level_names is missing "early
> parameters" string as the first element of the array. Well spotted - may
> I asked what tool did you use to get this message?
>
It's a Smatch thing, but it requires the database to be set up
first. It's a new-ish feature. I should clean up my build scripts
and publish them...
regards,
dan carpenter
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* re: params: <level>_initcall-like kernel parameters
2012-02-02 11:08 ` Pawel Moll
2012-02-02 17:01 ` Dan Carpenter
@ 2012-02-06 22:16 ` Rusty Russell
2012-02-07 14:45 ` [PATCH] params: Add missing init level name Pawel Moll
1 sibling, 1 reply; 5+ messages in thread
From: Rusty Russell @ 2012-02-06 22:16 UTC (permalink / raw)
To: Pawel Moll, Dan Carpenter; +Cc: linux-kernel@vger.kernel.org
On Thu, 02 Feb 2012 11:08:57 +0000, Pawel Moll <pawel.moll@arm.com> wrote:
> You're right, of course! The initcall_level_names is missing "early
> parameters" string as the first element of the array. Well spotted - may
> I asked what tool did you use to get this message?
>
> Rusty, do you want me to re-send the patch with this string fixed? I
> think you have rebased it on top of your bool-param series?
An incremental patch is preferred. I can fold it once it's done.
Thanks,
Rusty.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] params: Add missing init level name
2012-02-06 22:16 ` Rusty Russell
@ 2012-02-07 14:45 ` Pawel Moll
0 siblings, 0 replies; 5+ messages in thread
From: Pawel Moll @ 2012-02-07 14:45 UTC (permalink / raw)
To: Rusty Russell; +Cc: linux-kernel, Dan Carpenter, Jim Cromie, Pawel Moll
The initcall_level_names array did not contain name of the
"virtual" level 0 (early paramters). Fixed.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
---
init/main.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/init/main.c b/init/main.c
index 8e4060c..b229ee6 100644
--- a/init/main.c
+++ b/init/main.c
@@ -726,6 +726,7 @@ static initcall_t *initcall_levels[] __initdata = {
};
static char *initcall_level_names[] __initdata = {
+ "early parameters",
"core parameters",
"postcore parameters",
"arch parameters",
--
1.7.5.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-02-07 14:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-02 9:56 params: <level>_initcall-like kernel parameters Dan Carpenter
2012-02-02 11:08 ` Pawel Moll
2012-02-02 17:01 ` Dan Carpenter
2012-02-06 22:16 ` Rusty Russell
2012-02-07 14:45 ` [PATCH] params: Add missing init level name Pawel Moll
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.