Skip to contentSkip to conversation

USB: serial: mos7840: fix status-register error handling

PATCH New Johan Hovold 1 participant 1 message Jul 4, 2018

Subsystems (3)
lore
Share & tools
lore

Johan Hovold

author maintainer
#0 lore raw

PATCH 2/4 USB: serial: mos7840: fix status-register error handling

Add missing transfer-length sanity check to the status-register completion handler to avoid leaking bits of uninitialised slab data to user space.

Fixes 3f5429746d91 ("USB: Moschip 7840 USB-Serial Driver")
Cc stable <[email protected]> # 2.6.19
Cc Paul B Schroeder <[email protected]>
---
 drivers/usb/serial/mos7840.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/usb/serial/mos7840.c +3 -0
index fdceb46d9fc6..b580b4c7fa48 100644
@@ -468,6 +468,9 @@ static void mos7840_control_callback(struct urb *urb)
 	}
 
 	dev_dbg(dev, "%s urb buffer size is %d\n", __func__, urb->actual_length);
+	if (urb->actual_length < 1)
+		goto out;
+
 	dev_dbg(dev, "%s mos7840_port->MsrLsr is %d port %d\n", __func__,
 		mos7840_port->MsrLsr, mos7840_port->port_num);
 	data = urb->transfer_buffer;