Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Ubuntu Kernel Team (http://www.linux-archive.org/ubuntu-kernel-team/)
-   -   ALSA: caiaq - Fix possible string-buffer overflow, CVE-2011-0712 (http://www.linux-archive.org/ubuntu-kernel-team/517374-alsa-caiaq-fix-possible-string-buffer-overflow-cve-2011-0712-a.html)

Takashi Iwai 02-14-2011 08:45 PM

ALSA: caiaq - Fix possible string-buffer overflow, CVE-2011-0712
 
BugLink: http://bugs.launchpad.net/bugs/768448

CVE-2011-0712

Use strlcpy() to assure not to overflow the string array sizes by
too long USB device name string.

Reported-by: Rafa <rafa@mwrinfosecurity.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
(backported from upstream commit eaae55dac6b64c0616046436b294e69fc5311581)

Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>
---
sound/usb/caiaq/caiaq-audio.c | 2 +-
sound/usb/caiaq/caiaq-device.c | 4 ++--
sound/usb/caiaq/caiaq-midi.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/usb/caiaq/caiaq-audio.c b/sound/usb/caiaq/caiaq-audio.c
index 0666908..5e1aeac 100644
--- a/sound/usb/caiaq/caiaq-audio.c
+++ b/sound/usb/caiaq/caiaq-audio.c
@@ -636,7 +636,7 @@ int __devinit snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
}

dev->pcm->private_data = dev;
- strcpy(dev->pcm->name, dev->product_name);
+ strlcpy(dev->pcm->name, dev->product_name, sizeof(dev->pcm->name));

memset(dev->sub_playback, 0, sizeof(dev->sub_playback));
memset(dev->sub_capture, 0, sizeof(dev->sub_capture));
diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/caiaq-device.c
index 58af814..78b74c3 100644
--- a/sound/usb/caiaq/caiaq-device.c
+++ b/sound/usb/caiaq/caiaq-device.c
@@ -361,8 +361,8 @@ static int init_card(struct snd_usb_caiaqdev *dev)
if (c)
*c = '';

- strcpy(card->driver, MODNAME);
- strcpy(card->shortname, dev->product_name);
+ strlcpy(card->driver, MODNAME, sizeof(card->driver));
+ strlcpy(card->shortname, dev->product_name, sizeof(card->shortname));

len = snprintf(card->longname, sizeof(card->longname),
"%s %s (serial %s, ",
diff --git a/sound/usb/caiaq/caiaq-midi.c b/sound/usb/caiaq/caiaq-midi.c
index 793ca20..1c14ba9 100644
--- a/sound/usb/caiaq/caiaq-midi.c
+++ b/sound/usb/caiaq/caiaq-midi.c
@@ -137,7 +137,7 @@ int __devinit snd_usb_caiaq_midi_init(struct snd_usb_caiaqdev *device)
if (ret < 0)
return ret;

- strcpy(rmidi->name, device->product_name);
+ strlcpy(rmidi->name, device->product_name, sizeof(rmidi->name));

rmidi->info_flags = SNDRV_RAWMIDI_INFO_DUPLEX;
rmidi->private_data = device;
--
1.7.0.4




--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team


All times are GMT. The time now is 03:15 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.