From: Greg Kroah-Hartman Date: Sun, 11 Nov 2018 02:12:49 +0000 (-0800) Subject: 4.4-stable patches X-Git-Tag: v4.19.2~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5eaab0b8aa1ca751e299a4e997f7142a9d22e548;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: kgdboc-passing-ekgdboc-to-command-line-causes-panic.patch --- diff --git a/queue-4.4/kgdboc-passing-ekgdboc-to-command-line-causes-panic.patch b/queue-4.4/kgdboc-passing-ekgdboc-to-command-line-causes-panic.patch new file mode 100644 index 00000000000..8ac1cadee3c --- /dev/null +++ b/queue-4.4/kgdboc-passing-ekgdboc-to-command-line-causes-panic.patch @@ -0,0 +1,59 @@ +From 1bd54d851f50dea6af30c3e6ff4f3e9aab5558f9 Mon Sep 17 00:00:00 2001 +From: He Zhe +Date: Fri, 17 Aug 2018 22:42:28 +0800 +Subject: kgdboc: Passing ekgdboc to command line causes panic + +From: He Zhe + +commit 1bd54d851f50dea6af30c3e6ff4f3e9aab5558f9 upstream. + +kgdboc_option_setup does not check input argument before passing it +to strlen. The argument would be a NULL pointer if "ekgdboc", without +its value, is set in command line and thus cause the following panic. + +PANIC: early exception 0xe3 IP 10:ffffffff8fbbb620 error 0 cr2 0x0 +[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.18-rc8+ #1 +[ 0.000000] RIP: 0010:strlen+0x0/0x20 +... +[ 0.000000] Call Trace +[ 0.000000] ? kgdboc_option_setup+0x9/0xa0 +[ 0.000000] ? kgdboc_early_init+0x6/0x1b +[ 0.000000] ? do_early_param+0x4d/0x82 +[ 0.000000] ? parse_args+0x212/0x330 +[ 0.000000] ? rdinit_setup+0x26/0x26 +[ 0.000000] ? parse_early_options+0x20/0x23 +[ 0.000000] ? rdinit_setup+0x26/0x26 +[ 0.000000] ? parse_early_param+0x2d/0x39 +[ 0.000000] ? setup_arch+0x2f7/0xbf4 +[ 0.000000] ? start_kernel+0x5e/0x4c2 +[ 0.000000] ? load_ucode_bsp+0x113/0x12f +[ 0.000000] ? secondary_startup_64+0xa5/0xb0 + +This patch adds a check to prevent the panic. + +Cc: stable@vger.kernel.org +Cc: jason.wessel@windriver.com +Cc: gregkh@linuxfoundation.org +Cc: jslaby@suse.com +Signed-off-by: He Zhe +Reviewed-by: Daniel Thompson +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/tty/serial/kgdboc.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/tty/serial/kgdboc.c ++++ b/drivers/tty/serial/kgdboc.c +@@ -133,6 +133,11 @@ static void kgdboc_unregister_kbd(void) + + static int kgdboc_option_setup(char *opt) + { ++ if (!opt) { ++ pr_err("kgdboc: config string not provided\n"); ++ return -EINVAL; ++ } ++ + if (strlen(opt) >= MAX_CONFIG_LEN) { + printk(KERN_ERR "kgdboc: config string too long\n"); + return -ENOSPC; diff --git a/queue-4.4/series b/queue-4.4/series index 965775910eb..4f28d6d4754 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -80,3 +80,4 @@ powerpc-msi-fix-compile-error-on-mpc83xx.patch mips-octeon-fix-out-of-bounds-array-access-on-cn68xx.patch tc-set-dma-masks-for-devices.patch net-bcmgenet-fix-of-child-node-lookup.patch +kgdboc-passing-ekgdboc-to-command-line-causes-panic.patch