re: params: <level>_initcall-like kernel parameters

From: Dan Carpenter
Date: Thu Feb 02 2012 - 04:56:33 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/