Skip to contentSkip to conversation

Patch "ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Apr 9, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
alsa-usb-audio-fix-null-dereference-in-create_fixed_stream_quirk.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 0f886ca12765d20124bd06291c82951fd49a33be Mon Sep 17 00:00:00 2001

From: Takashi Iwai <[email protected]>
Date: Tue, 15 Mar 2016 12:09:10 +0100
Subject: ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()

From: Takashi Iwai <[email protected]>

commit 0f886ca12765d20124bd06291c82951fd49a33be upstream.

create_fixed_stream_quirk() may cause a NULL-pointer dereference by accessing the non-existing endpoint when a USB device with a malformed USB descriptor is used.

This patch avoids it simply by adding a sanity check of bNumEndpoints before the accesses.

Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=971125

---
 sound/usb/quirks.c |    6 ++++++
 1 file changed, 6 insertions(+)
sound/usb/quirks.c +6 -0
@@ -180,6 +180,12 @@ static int create_fixed_stream_quirk(str
 	}
 	alts = &iface->altsetting[fp->altset_idx];
 	altsd = get_iface_desc(alts);
+	if (altsd->bNumEndpoints < 1) {
+		kfree(fp);
+		kfree(rate_table);
+		return -EINVAL;
+	}
+
 	fp->protocol = altsd->bInterfaceProtocol;
 
 	if (fp->datainterval == 0)

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/alsa-usb-audio-add-microsoft-hd-5001-to-quirks.patch queue-4.4/alsa-usb-audio-fix-null-dereference-in-create_fixed_stream_quirk.patch queue-4.4/alsa-usb-audio-minor-code-cleanup-in-create_fixed_stream_quirk.patch queue-4.4/alsa-usb-audio-fix-double-free-in-error-paths-after-snd_usb_add_audio_stream-call.patch queue-4.4/alsa-usb-audio-add-sanity-checks-for-endpoint-accesses.patch