summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-06-10 10:09:54 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-10 10:09:54 -0700
commit960fc49f4cbfd7533e6028661ba385e0b1665fad (patch)
treec49de9e09b5e4dd0b9ea24d7c23dd182228f4940
parent14a645153934ad885888cb0752edc4e636b83201 (diff)
[PATCH] fix oops in driver/serial/core.c
From: hugang <hugang@soulinfo.com> It has a rather blatant null pointer deref and attempted memory leak.
-rw-r--r--drivers/serial/core.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/serial/core.c b/drivers/serial/core.c
index 7a40034c9cb7..e56baaf1f0e2 100644
--- a/drivers/serial/core.c
+++ b/drivers/serial/core.c
@@ -2189,11 +2189,11 @@ int uart_register_driver(struct uart_driver *drv)
void uart_unregister_driver(struct uart_driver *drv)
{
struct tty_driver *p = drv->tty_driver;
- drv->tty_driver = NULL;
tty_unregister_driver(p);
kfree(drv->state);
- kfree(drv->tty_driver->termios);
- kfree(drv->tty_driver);
+ kfree(p->termios);
+ kfree(p);
+ drv->tty_driver = NULL;
}
struct tty_driver *uart_console_device(struct console *co, int *index)