Browse Source

usb: gadget: serial: fix oops when data rx'd after close

When the gadget serial device has no associated TTY, do not pass any
received data into the TTY layer for processing; simply drop it instead.
This prevents the TTY layer from calling back into the gadget serial
driver, which will then crash in e.g. gs_write_room() due to lack of
gadget serial device to TTY association (i.e. a NULL pointer dereference).

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Stephen Warren 8 years ago
parent
commit
daa35bd956
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/usb/gadget/function/u_serial.c

+ 1 - 1
drivers/usb/gadget/function/u_serial.c

@@ -537,7 +537,7 @@ static void gs_rx_push(unsigned long _port)
 		}
 
 		/* push data to (open) tty */
-		if (req->actual) {
+		if (req->actual && tty) {
 			char		*packet = req->buf;
 			unsigned	size = req->actual;
 			unsigned	n;