diff mbox series

NFC: pn533: fix bulk-message timeout

Message ID 20200113172358.30973-1-johan@kernel.org (mailing list archive)
State Mainlined
Commit a112adafcb47760feff959ee1ecd10b74d2c5467
Headers show
Series NFC: pn533: fix bulk-message timeout | expand

Commit Message

Johan Hovold Jan. 13, 2020, 5:23 p.m. UTC
The driver was doing a synchronous uninterruptible bulk-transfer without
using a timeout. This could lead to the driver hanging on probe due to a
malfunctioning (or malicious) device until the device is physically
disconnected. While sleeping in probe the driver prevents other devices
connected to the same hub from being added to (or removed from) the bus.

An arbitrary limit of five seconds should be more than enough.

Fixes: dbafc28955fa ("NFC: pn533: don't send USB data off of the stack")
Cc: stable <stable@vger.kernel.org>     # 4.18
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/nfc/pn533/usb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Greg KH Jan. 13, 2020, 6:25 p.m. UTC | #1
On Mon, Jan 13, 2020 at 06:23:58PM +0100, Johan Hovold wrote:
> The driver was doing a synchronous uninterruptible bulk-transfer without
> using a timeout. This could lead to the driver hanging on probe due to a
> malfunctioning (or malicious) device until the device is physically
> disconnected. While sleeping in probe the driver prevents other devices
> connected to the same hub from being added to (or removed from) the bus.
> 
> An arbitrary limit of five seconds should be more than enough.
> 
> Fixes: dbafc28955fa ("NFC: pn533: don't send USB data off of the stack")
> Cc: stable <stable@vger.kernel.org>     # 4.18
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/nfc/pn533/usb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)


Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jakub Kicinski Jan. 14, 2020, 2:56 a.m. UTC | #2
On Mon, 13 Jan 2020 18:23:58 +0100, Johan Hovold wrote:
> The driver was doing a synchronous uninterruptible bulk-transfer without
> using a timeout. This could lead to the driver hanging on probe due to a
> malfunctioning (or malicious) device until the device is physically
> disconnected. While sleeping in probe the driver prevents other devices
> connected to the same hub from being added to (or removed from) the bus.
> 
> An arbitrary limit of five seconds should be more than enough.
> 
> Fixes: dbafc28955fa ("NFC: pn533: don't send USB data off of the stack")
> Cc: stable <stable@vger.kernel.org>     # 4.18
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Johan Hovold <johan@kernel.org>

Applied to net, thank you. In the future please don't CC stable
explicitly on networking patches, Dave (or I) will select and send
all relevant patches to stable as noted in netdev FAQ.
diff mbox series

Patch

diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c
index 4590fbf82dc2..f5bb7ace2ff5 100644
--- a/drivers/nfc/pn533/usb.c
+++ b/drivers/nfc/pn533/usb.c
@@ -391,7 +391,7 @@  static int pn533_acr122_poweron_rdr(struct pn533_usb_phy *phy)
 		       cmd, sizeof(cmd), false);
 
 	rc = usb_bulk_msg(phy->udev, phy->out_urb->pipe, buffer, sizeof(cmd),
-			  &transferred, 0);
+			  &transferred, 5000);
 	kfree(buffer);
 	if (rc || (transferred != sizeof(cmd))) {
 		nfc_err(&phy->udev->dev,