diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2007-10-22 23:45:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-23 11:32:06 -0400 |
commit | 7fa57a0cd98bdd163eeb5f15cbe234c3a0cf68a1 (patch) | |
tree | e96e4baa27409ab15daaad10f5ff63fac67e4919 /drivers/char/cyclades.c | |
parent | 1ddd439ef987c9f0209e6ce824b67518f2afe67b (diff) |
Char: cyclades, fix potential NULL dereference
ztxdone is jumped to even if tty is NULL and tty_wakeup placed after
this label doesn't expect NULLed parameter, so this will cause an oops
in some situations (why they scheduled a wakeup there before remove
bottom half processing patch?).
wakeup only in the case when we have non-null tty struct.
Spotted by Adrian Bunk.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/cyclades.c')
-rw-r--r-- | drivers/char/cyclades.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c index d1bd0f08a331..e4f579c3e245 100644 --- a/drivers/char/cyclades.c +++ b/drivers/char/cyclades.c | |||
@@ -1602,8 +1602,8 @@ static void cyz_handle_tx(struct cyclades_port *info, | |||
1602 | info->icount.tx++; | 1602 | info->icount.tx++; |
1603 | } | 1603 | } |
1604 | #endif | 1604 | #endif |
1605 | ztxdone: | ||
1606 | tty_wakeup(tty); | 1605 | tty_wakeup(tty); |
1606 | ztxdone: | ||
1607 | /* Update tx_put */ | 1607 | /* Update tx_put */ |
1608 | cy_writel(&buf_ctrl->tx_put, tx_put); | 1608 | cy_writel(&buf_ctrl->tx_put, tx_put); |
1609 | } | 1609 | } |