aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Khoroshilov <khoroshilov@ispras.ru>2012-09-13 14:56:55 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-14 00:48:48 -0400
commit8321652ae22f38830af5b553f3a316d68948ddce (patch)
tree50f5c69c176d43d5e86e2cc3382dc199c3bce427
parent17e6791082e3dc34d0b43fd50ff8655fdfcc3a99 (diff)
USB: omninet: fix potential tty NULL dereference
Add check for return value of tty_port_tty_get, since it can return NULL after port hangup that may happen anytime. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/serial/omninet.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
index d31f661d758c..f524cd910e2c 100644
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
@@ -185,10 +185,12 @@ static void omninet_read_bulk_callback(struct urb *urb)
185 185
186 if (urb->actual_length && header->oh_len) { 186 if (urb->actual_length && header->oh_len) {
187 struct tty_struct *tty = tty_port_tty_get(&port->port); 187 struct tty_struct *tty = tty_port_tty_get(&port->port);
188 tty_insert_flip_string(tty, data + OMNINET_DATAOFFSET, 188 if (tty) {
189 tty_insert_flip_string(tty, data + OMNINET_DATAOFFSET,
189 header->oh_len); 190 header->oh_len);
190 tty_flip_buffer_push(tty); 191 tty_flip_buffer_push(tty);
191 tty_kref_put(tty); 192 tty_kref_put(tty);
193 }
192 } 194 }
193 195
194 /* Continue trying to always read */ 196 /* Continue trying to always read */