From 57dc6158b397beba881fa405cbafcfb99b57dd5e Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Sat, 12 Jul 2008 21:40:32 +0000 Subject: [PATCH] serial8250: sanity check nr_uarts on all paths. commit 05d81d2222beec7b63ac8c1c8cdb5bb4f82c2bad upstream I had 8250.nr_uarts=16 in the boot line of a test kernel and I had a weird mysterious crash in sysfs. After taking an in-depth look I realized that CONFIG_SERIAL_8250_NR_UARTS was set to 4 and I was walking off the end of the serial8250_ports array. Ouch!!! Don't let this happen to someone else. Signed-off-by: Eric W. Biederman Acked-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- drivers/serial/8250.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index d60705e9d007..fe989c5cd3f8 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -2564,6 +2564,9 @@ static struct console serial8250_console = { static int __init serial8250_console_init(void) { + if (nr_uarts > UART_NR) + nr_uarts = UART_NR; + serial8250_isa_init_ports(); register_console(&serial8250_console); return 0; -- 2.39.5