Skip to content

Commit e9a24eb

Browse files
ytcoodesmb49
authored andcommitted
init/main.c: Fix potential static_command_line memory overflow
BugLink: https://bugs.launchpad.net/bugs/2067959 commit 46dad3c1e57897ab9228332f03e1c14798d2d3b9 upstream. We allocate memory of size 'xlen + strlen(boot_command_line) + 1' for static_command_line, but the strings copied into static_command_line are extra_command_line and command_line, rather than extra_command_line and boot_command_line. When strlen(command_line) > strlen(boot_command_line), static_command_line will overflow. This patch just recovers strlen(command_line) which was miss-consolidated with strlen(boot_command_line) in the commit f5c7310 ("init/main: add checks for the return value of memblock_alloc*()") Link: https://lore.kernel.org/all/[email protected]/ Fixes: f5c7310 ("init/main: add checks for the return value of memblock_alloc*()") Cc: [email protected] Signed-off-by: Yuntao Wang <[email protected]> Signed-off-by: Masami Hiramatsu (Google) <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Portia Stephens <[email protected]> Signed-off-by: Stefan Bader <[email protected]>
1 parent 9b80427 commit e9a24eb

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

init/main.c

+2
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,8 @@ static void __init setup_command_line(char *command_line)
640640
if (!saved_command_line)
641641
panic("%s: Failed to allocate %zu bytes\n", __func__, len + ilen);
642642

643+
len = xlen + strlen(command_line) + 1;
644+
643645
static_command_line = memblock_alloc(len, SMP_CACHE_BYTES);
644646
if (!static_command_line)
645647
panic("%s: Failed to allocate %zu bytes\n", __func__, len);

0 commit comments

Comments
 (0)