rtl8xxxu: fix interface sanity check
authorJohan Hovold <johan@kernel.org>
Tue, 10 Dec 2019 11:44:24 +0000 (12:44 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 18 Dec 2019 19:06:05 +0000 (21:06 +0200)
Make sure to use the current alternate setting when verifying the
interface descriptors to avoid binding to an invalid interface.

Failing to do so could cause the driver to misbehave or trigger a WARN()
in usb_submit_urb() that kernels with panic_on_warn set would choke on.

Fixes: 26f1fad29ad9 ("New driver: rtl8xxxu (mac80211)")
Cc: stable <stable@vger.kernel.org> # 4.4
Cc: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c

index aa2bb2ae980965a670adfbdc8aca845910684bfa..54a1a4ea107b7d9195d19f909dfb38483b94960c 100644 (file)
@@ -6384,7 +6384,7 @@ static int rtl8xxxu_parse_usb(struct rtl8xxxu_priv *priv,
        u8 dir, xtype, num;
        int ret = 0;
 
-       host_interface = &interface->altsetting[0];
+       host_interface = interface->cur_altsetting;
        interface_desc = &host_interface->desc;
        endpoints = interface_desc->bNumEndpoints;