[alsa-devel] Patch "ALSA: info: Check for integer overflow in snd_info_entry_write()" has been added to the 3.18-stable tree
gregkh at linuxfoundation.org
gregkh at linuxfoundation.org
Thu Aug 16 12:08:01 CEST 2018
This is a note to let you know that I've just added the patch titled
ALSA: info: Check for integer overflow in snd_info_entry_write()
to the 3.18-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-info-check-for-integer-overflow-in-snd_info_entry_write.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable at vger.kernel.org> know about it.
>From erickreyes at google.com Thu Aug 16 12:07:22 2018
From: Erick Reyes <erickreyes at google.com>
Date: Wed, 15 Aug 2018 17:55:48 -0700
Subject: ALSA: info: Check for integer overflow in snd_info_entry_write()
To: stable at vger.kernel.org
Cc: linux-kernel at vger.kernel.org, Jaroslav Kysela <perex at perex.cz>, Takashi Iwai <tiwai at suse.com>, kernel-team at android.com, Vinod Koul <vkoul at kernel.org>, Joe Perches <joe at perches.com>, Al Viro <viro at zeniv.linux.org.uk>, alsa-devel at alsa-project.org, Erick Reyes <erickreyes at google.com>, Siqi Lin <siqilin at google.com>
Message-ID: <20180816005548.151269-1-erickreyes at google.com>
From: Erick Reyes <erickreyes at google.com>
Commit 4adb7bcbcb69 ("ALSA: core: Use seq_file for text proc file
reads") heavily refactored ALSA procfs and fixed the overflow as
a side-effect, so this fix only applies to kernels < 4.2 and
there is no upstream equivalent
snd_info_entry_write() resizes the buffer with an unsigned long
size argument that gets truncated because resize_info_buffer()
takes the size parameter as an unsigned int. On 64-bit kernels,
this causes the following copy_to_user() to write out-of-bounds
if (pos + count) can't be represented by an unsigned int.
Signed-off-by: Siqi Lin <siqilin at google.com>
Signed-off-by: Erick Reyes <erickreyes at google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
sound/core/info.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -253,6 +253,7 @@ static ssize_t snd_info_entry_write(stru
struct snd_info_buffer *buf;
ssize_t size = 0;
loff_t pos;
+ unsigned long realloc_size;
data = file->private_data;
if (snd_BUG_ON(!data))
@@ -261,7 +262,8 @@ static ssize_t snd_info_entry_write(stru
pos = *offset;
if (pos < 0 || (long) pos != pos || (ssize_t) count < 0)
return -EIO;
- if ((unsigned long) pos + (unsigned long) count < (unsigned long) pos)
+ realloc_size = (unsigned long) pos + (unsigned long) count;
+ if (realloc_size < (unsigned long) pos || realloc_size > UINT_MAX)
return -EIO;
switch (entry->content) {
case SNDRV_INFO_CONTENT_TEXT:
Patches currently in stable-queue which might be from erickreyes at google.com are
queue-3.18/alsa-info-check-for-integer-overflow-in-snd_info_entry_write.patch
More information about the Alsa-devel
mailing list