]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
serial: initialize retinfo in uart_get_info()
authorAlexey Dobriyan <adobriyan@gmail.com>
Thu, 5 Oct 2023 16:34:21 +0000 (19:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Oct 2023 09:21:42 +0000 (11:21 +0200)
If this check ever triggers

static int uart_get_info(struct tty_port *port, struct serial_struct *retinfo)
{

uport = uart_port_check(state);
        if (!uport)
                goto out;

then all those sysfs users will print stack contents to userspace.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Link: https://lore.kernel.org/r/967b9ef1-fb36-48bf-9e6a-1b99af24c052@p183
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_core.c

index 70bf2bec875c5ccad0c25cc5a79440584d48f2a9..be74d30cfa9e73a00999d90fc3b423f6db85acb2 100644 (file)
@@ -775,6 +775,9 @@ static int uart_get_info(struct tty_port *port, struct serial_struct *retinfo)
        struct uart_port *uport;
        int ret = -ENODEV;
 
+       /* Initialize structure in case we error out later to prevent any stack info leakage. */
+       *retinfo = (struct serial_struct){};
+
        /*
         * Ensure the state we copy is consistent and no hardware changes
         * occur as we go