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 <khoroshi...@ispras.ru>
---
 drivers/usb/serial/omninet.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
index 6f3d705..493c892 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)
 
        if (urb->actual_length && header->oh_len) {
                struct tty_struct *tty = tty_port_tty_get(&port->port);
-               tty_insert_flip_string(tty, data + OMNINET_DATAOFFSET,
+               if (tty) {
+                       tty_insert_flip_string(tty, data + OMNINET_DATAOFFSET,
                                                        header->oh_len);
-               tty_flip_buffer_push(tty);
-               tty_kref_put(tty);
+                       tty_flip_buffer_push(tty);
+                       tty_kref_put(tty);
+               }
        }
 
        /* Continue trying to always read  */
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to