2012-11-29 02:30:04

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH -next] staging: sb105x: fix potential NULL pointer dereference in mp_chars_in_buffer()

From: Wei Yongjun <[email protected]>

The dereference to 'state' should be moved below the NULL test.

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/staging/sb105x/sb_pci_mp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/sb105x/sb_pci_mp.c b/drivers/staging/sb105x/sb_pci_mp.c
index fbebf88..edb2a85 100644
--- a/drivers/staging/sb105x/sb_pci_mp.c
+++ b/drivers/staging/sb105x/sb_pci_mp.c
@@ -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);