diff options
author | Takashi Iwai <tiwai@suse.de> | 2017-10-09 14:26:27 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-10-09 16:17:09 +0200 |
commit | 54a4b2b45817ea2365b40c923c098a26af0c0dbb (patch) | |
tree | 74fce302ae431cb6347539adc5705c73ad58aa0a /sound/usb | |
parent | ALSA: line6: Fix missing initialization before error path (diff) | |
download | linux-54a4b2b45817ea2365b40c923c098a26af0c0dbb.tar.xz 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.c | 3 |
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); } } |