Max310x driver supports up to 4 UART devices but array size of "struct max310x_one" is set to 1. That leads to out of bounds access on UART port registration. This patch fixed it by increase the array size to 4 which is maximum supported UART. --- drivers/tty/serial/max310x.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index 182549f..b523552 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -33,6 +33,9 @@ #define MAX310X_MAJOR 204 #define MAX310X_MINOR 209 +/* Maximum supported device */ +#define MAX_DEVICE 4 + /* MAX310X register definitions */ #define MAX310X_RHR_REG (0x00) /* RX FIFO */ #define MAX310X_THR_REG (0x00) /* TX FIFO */ @@ -273,7 +276,7 @@ struct max310x_port { #ifdef CONFIG_GPIOLIB struct gpio_chip gpio; #endif - struct max310x_one p[0]; + struct max310x_one p[MAX_DEVICE]; }; static u8 max310x_port_read(struct uart_port *port, u8 reg) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html