From 0e0fe9631fb132cf1022dfcd5cf27bc37e58fece Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 30 Aug 2017 17:29:20 +0200 Subject: [PATCH] 3.18-stable patches added patches: alsa-au88x0-fix-zero-clear-of-stream-resources.patch --- ...0-fix-zero-clear-of-stream-resources.patch | 76 +++++++++++++++++++ queue-3.18/series | 1 + 2 files changed, 77 insertions(+) create mode 100644 queue-3.18/alsa-au88x0-fix-zero-clear-of-stream-resources.patch diff --git a/queue-3.18/alsa-au88x0-fix-zero-clear-of-stream-resources.patch b/queue-3.18/alsa-au88x0-fix-zero-clear-of-stream-resources.patch new file mode 100644 index 00000000000..00331779e8b --- /dev/null +++ b/queue-3.18/alsa-au88x0-fix-zero-clear-of-stream-resources.patch @@ -0,0 +1,76 @@ +From 639db596165746ca87bbcb56559b094fd9042890 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 12 May 2016 18:04:16 +0200 +Subject: ALSA: au88x0: Fix zero clear of stream->resources + +From: Takashi Iwai + +commit 639db596165746ca87bbcb56559b094fd9042890 upstream. + +There are a few calls of memset() to stream->resources, but they all +are called in a wrong size, sizeof(unsigned char) * VORTEX_RESOURCE_LAST, +while this field is a u32 array. This may leave the memories not +zero-cleared. + +Fix it by replacing them with a simpler sizeof(stream->resources) +instead. + +Reported-by: David Binderman +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/au88x0/au88x0_core.c | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +--- a/sound/pci/au88x0/au88x0_core.c ++++ b/sound/pci/au88x0/au88x0_core.c +@@ -2146,8 +2146,7 @@ vortex_adb_allocroute(vortex_t *vortex, + stream->resources, en, + VORTEX_RESOURCE_SRC)) < 0) { + memset(stream->resources, 0, +- sizeof(unsigned char) * +- VORTEX_RESOURCE_LAST); ++ sizeof(stream->resources)); + return -EBUSY; + } + if (stream->type != VORTEX_PCM_A3D) { +@@ -2157,7 +2156,7 @@ vortex_adb_allocroute(vortex_t *vortex, + VORTEX_RESOURCE_MIXIN)) < 0) { + memset(stream->resources, + 0, +- sizeof(unsigned char) * VORTEX_RESOURCE_LAST); ++ sizeof(stream->resources)); + return -EBUSY; + } + } +@@ -2170,8 +2169,7 @@ vortex_adb_allocroute(vortex_t *vortex, + stream->resources, en, + VORTEX_RESOURCE_A3D)) < 0) { + memset(stream->resources, 0, +- sizeof(unsigned char) * +- VORTEX_RESOURCE_LAST); ++ sizeof(stream->resources)); + pr_err( "vortex: out of A3D sources. Sorry\n"); + return -EBUSY; + } +@@ -2283,8 +2281,7 @@ vortex_adb_allocroute(vortex_t *vortex, + VORTEX_RESOURCE_MIXOUT)) + < 0) { + memset(stream->resources, 0, +- sizeof(unsigned char) * +- VORTEX_RESOURCE_LAST); ++ sizeof(stream->resources)); + return -EBUSY; + } + if ((src[i] = +@@ -2292,8 +2289,7 @@ vortex_adb_allocroute(vortex_t *vortex, + stream->resources, en, + VORTEX_RESOURCE_SRC)) < 0) { + memset(stream->resources, 0, +- sizeof(unsigned char) * +- VORTEX_RESOURCE_LAST); ++ sizeof(stream->resources)); + return -EBUSY; + } + } diff --git a/queue-3.18/series b/queue-3.18/series index 0cb395826f4..b5b1d1fbade 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -1 +1,2 @@ scsi-isci-avoid-array-subscript-warning.patch +alsa-au88x0-fix-zero-clear-of-stream-resources.patch -- 2.47.3