staging: sb105x: fix potential NULL pointer dereference in mp_chars_in_buffer()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Thu, 29 Nov 2012 02:30:01 +0000 (21:30 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Nov 2012 02:15:27 +0000 (18:15 -0800)
The dereference to 'state' should be moved below the NULL test.

Cc: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sb105x/sb_pci_mp.c

index fbebf88..edb2a85 100644 (file)
@@ -689,13 +689,14 @@ static int mp_chars_in_buffer(struct tty_struct *tty)
 static void mp_flush_buffer(struct tty_struct *tty)
 {
        struct sb_uart_state *state = tty->driver_data;
-       struct sb_uart_port *port = state->port;
+       struct sb_uart_port *port;
        unsigned long flags;
 
        if (!state || !state->info) {
                return;
        }
 
+       port = state->port;
        spin_lock_irqsave(&port->lock, flags);
        uart_circ_clear(&state->info->xmit);
        spin_unlock_irqrestore(&port->lock, flags);