浏览代码

USB: serial: quatech2: fix use-after-free in probe error path

The interface read URB is submitted in attach, but was only unlinked by
the driver at disconnect.

In case of a late probe error (e.g. due to failed minor allocation),
disconnect is never called and we would end up with active URBs for an
unbound interface. This in turn could lead to deallocated memory being
dereferenced in the completion callback.

Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver")
Cc: stable <stable@vger.kernel.org>	# v3.5: 40d04738491d
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Johan Hovold 9 年之前
父节点
当前提交
028c49f5e0
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      drivers/usb/serial/quatech2.c

+ 1 - 0
drivers/usb/serial/quatech2.c

@@ -141,6 +141,7 @@ static void qt2_release(struct usb_serial *serial)
 
 
 	serial_priv = usb_get_serial_data(serial);
 	serial_priv = usb_get_serial_data(serial);
 
 
+	usb_kill_urb(serial_priv->read_urb);
 	usb_free_urb(serial_priv->read_urb);
 	usb_free_urb(serial_priv->read_urb);
 	kfree(serial_priv->read_buffer);
 	kfree(serial_priv->read_buffer);
 	kfree(serial_priv);
 	kfree(serial_priv);