Messages in this thread | | | Subject | re: params: <level>_initcall-like kernel parameters | From | Pawel Moll <> | Date | Thu, 02 Feb 2012 11:08:57 +0000 |
| |
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ł
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |