Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8180bd47 authored by Mathy Vanhoef's avatar Mathy Vanhoef Committed by John W. Linville
Browse files

brcmfmac: kill URB when request timed out



Kill the submitted URB in brcmf_usb_dl_cmd if the request timed out. This
assures the URB is never submitted twice. It also prevents a possible
use-after-free of the URB transfer buffer if a timeout occurs.

Signed-off-by: default avatarMathy Vanhoef <vanhoefm@gmail.com>
Acked-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent daad1660
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -669,10 +669,12 @@ static int brcmf_usb_dl_cmd(struct brcmf_usbdev_info *devinfo, u8 cmd,
		goto finalize;
	}

	if (!brcmf_usb_ioctl_resp_wait(devinfo))
	if (!brcmf_usb_ioctl_resp_wait(devinfo)) {
		usb_kill_urb(devinfo->ctl_urb);
		ret = -ETIMEDOUT;
	else
	} else {
		memcpy(buffer, tmpbuf, buflen);
	}

finalize:
	kfree(tmpbuf);