]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: caiaq: Fix potentially leftover ep1_in_urb at error path
authorTakashi Iwai <tiwai@suse.de>
Mon, 27 Apr 2026 12:37:53 +0000 (14:37 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 28 Apr 2026 06:12:58 +0000 (08:12 +0200)
The previous fix for handling the error from setup_card() missed that
an internal URB cdev->ep1_in_urb might have been already submitted
beforehand.  In the normal case, this URB gets killed at the
disconnection, but in the error path, we didn't do it, hence there can
be a potential leak.

Fix it in the error path for setup_card(), too.

Fixes: 28abd224db4a ("ALSA: caiaq: Handle probe errors properly")
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20260427123819.890185-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/caiaq/device.c

index ad9f744b496bfb9a64668ec5b457250d5087563e..1afd91e2739659f8c7e5f2aa42eba2d158a5ebca 100644 (file)
@@ -514,7 +514,7 @@ static int init_card(struct snd_usb_caiaqdev *cdev)
 
        err = setup_card(cdev);
        if (err < 0)
-               return err;
+               goto err_kill_urb;
 
        return 0;