summaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-10-09 14:26:27 +0200
committerTakashi Iwai <tiwai@suse.de>2017-10-09 16:17:09 +0200
commit54a4b2b45817ea2365b40c923c098a26af0c0dbb (patch)
tree74fce302ae431cb6347539adc5705c73ad58aa0a /sound/usb
parentcb02ffc76a53b5ea751b79b8d4f4d180e5868475 (diff)
downloadlinux-54a4b2b45817ea2365b40c923c098a26af0c0dbb.tar.gz
linux-54a4b2b45817ea2365b40c923c098a26af0c0dbb.tar.bz2
linux-54a4b2b45817ea2365b40c923c098a26af0c0dbb.zip
ALSA: line6: Fix NULL dereference at podhd_disconnect()
When podhd_init() failed with the acquiring a ctrl i/f, the line6 helper still calls the disconnect callback that eventually calls again usb_driver_release_interface() with the NULL intf. Put the proper NULL check before calling it for avoiding an Oops. Fixes: fc90172ba283 ("ALSA: line6: Claim pod x3 usb data interface") Reported-by: Andrey Konovalov <andreyknvl@google.com> Tested-by: Andrey Konovalov <andreyknvl@google.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/line6/podhd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/usb/line6/podhd.c b/sound/usb/line6/podhd.c
index 14ab82ea7e82..451007c27743 100644
--- a/sound/usb/line6/podhd.c
+++ b/sound/usb/line6/podhd.c
@@ -301,7 +301,8 @@ static void podhd_disconnect(struct usb_line6 *line6)
intf = usb_ifnum_to_if(line6->usbdev,
pod->line6.properties->ctrl_if);
- usb_driver_release_interface(&podhd_driver, intf);
+ if (intf)
+ usb_driver_release_interface(&podhd_driver, intf);
}
}