Messages in this thread | | | Date | Thu, 2 Feb 2012 12:56:12 +0300 | From | Dan Carpenter <> | Subject | re: params: <level>_initcall-like kernel parameters |
| |
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
| |