From c3127da4e79258a68d5b9c6d1fbfb5f2e5e97fcb Mon Sep 17 00:00:00 2001 From: Sona Sarmadi Date: Thu, 14 Apr 2016 14:40:15 +0200 Subject: kernel-ALSA: CVE-2016-2384 Fixes double-free in usb-audio triggered by invalid USB descriptor (in the linux-qoriq-3.12). Reference: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-2384 Reference to the upstream patch: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/ patch/?id=563b627dbd698b2ae2f385718f1682ec20a51119 Signed-off-by: Sona Sarmadi Signed-off-by: Tudor Florea --- .../linux-qoriq-3.12/ALSA-CVE-2016-2384.patch | 40 ++++++++++++++++++++++ recipes-kernel/linux/linux-qoriq-common.inc | 1 + 2 files changed, 41 insertions(+) create mode 100644 recipes-kernel/linux/linux-qoriq-3.12/ALSA-CVE-2016-2384.patch diff --git a/recipes-kernel/linux/linux-qoriq-3.12/ALSA-CVE-2016-2384.patch b/recipes-kernel/linux/linux-qoriq-3.12/ALSA-CVE-2016-2384.patch new file mode 100644 index 0000000..44a81ca --- /dev/null +++ b/recipes-kernel/linux/linux-qoriq-3.12/ALSA-CVE-2016-2384.patch @@ -0,0 +1,40 @@ +From 563b627dbd698b2ae2f385718f1682ec20a51119 Mon Sep 17 00:00:00 2001 +From: Andrey Konovalov +Date: Sat, 13 Feb 2016 11:08:06 +0300 +Subject: ALSA: usb-audio: avoid freeing umidi object twice + +commit 07d86ca93db7e5cdf4743564d98292042ec21af7 upstream. + +The 'umidi' object will be free'd on the error path by snd_usbmidi_free() +when tearing down the rawmidi interface. So we shouldn't try to free it +in snd_usbmidi_create() after having registered the rawmidi interface. + +Found by KASAN. + +CVE: CVE-2016-2384 +Upstream-Status: Backport + +Signed-off-by: Andrey Konovalov +Acked-by: Clemens Ladisch +Signed-off-by: Takashi Iwai +Signed-off-by: Jiri Slaby +Signed-off-by: Sona Sarmadi +--- + sound/usb/midi.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/sound/usb/midi.c b/sound/usb/midi.c +index 9123fc5..424c1e8 100644 +--- a/sound/usb/midi.c ++++ b/sound/usb/midi.c +@@ -2365,7 +2365,6 @@ int snd_usbmidi_create(struct snd_card *card, + else + err = snd_usbmidi_create_endpoints(umidi, endpoints); + if (err < 0) { +- snd_usbmidi_free(umidi); + return err; + } + +-- +cgit v0.12 + diff --git a/recipes-kernel/linux/linux-qoriq-common.inc b/recipes-kernel/linux/linux-qoriq-common.inc index 76a6ac8..44b4ff5 100644 --- a/recipes-kernel/linux/linux-qoriq-common.inc +++ b/recipes-kernel/linux/linux-qoriq-common.inc @@ -27,6 +27,7 @@ SRC_URI += "file://b4860-hard_irq_disable-bug.patch \ file://CVE-2015-3636.patch \ file://net-unix-CVE-2013-7446.patch \ file://ALSA-CVE-2016-2546.patch \ + file://ALSA-CVE-2016-2384.patch \ " SRC_URI += "file://cfg/00013-localversion.cfg \ -- cgit v1.2.3-54-g00ecf