Commit dbe63a2c authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: sound/aoa: Add kmalloc NULL tests
  ALSA: hda - Increase PCM stream name buf in patch_realtek.c
  sound: mpu401.c: Buffer overflow
  sound: aedsp16: Buffer overflow
  ALSA: hda: fix out-of-bound hdmi_eld.sad[] write
  ALSA: hda - Add quirk for Dell Studio 1555
parents b5929724 ec86fe52
...@@ -182,6 +182,10 @@ static int pmf_set_notify(struct gpio_runtime *rt, ...@@ -182,6 +182,10 @@ static int pmf_set_notify(struct gpio_runtime *rt,
if (!old && notify) { if (!old && notify) {
irq_client = kzalloc(sizeof(struct pmf_irq_client), irq_client = kzalloc(sizeof(struct pmf_irq_client),
GFP_KERNEL); GFP_KERNEL);
if (!irq_client) {
err = -ENOMEM;
goto out_unlock;
}
irq_client->data = notif; irq_client->data = notif;
irq_client->handler = pmf_handle_notify_irq; irq_client->handler = pmf_handle_notify_irq;
irq_client->owner = THIS_MODULE; irq_client->owner = THIS_MODULE;
......
...@@ -325,8 +325,9 @@ ...@@ -325,8 +325,9 @@
/* /*
* Size of character arrays that store name and version of sound card * Size of character arrays that store name and version of sound card
*/ */
#define CARDNAMELEN 15 /* Size of the card's name in chars */ #define CARDNAMELEN 15 /* Size of the card's name in chars */
#define CARDVERLEN 2 /* Size of the card's version in chars */ #define CARDVERLEN 10 /* Size of the card's version in chars */
#define CARDVERDIGITS 2 /* Number of digits in the version */
#if defined(CONFIG_SC6600) #if defined(CONFIG_SC6600)
/* /*
...@@ -410,7 +411,7 @@ ...@@ -410,7 +411,7 @@
static int soft_cfg __initdata = 0; /* bitmapped config */ static int soft_cfg __initdata = 0; /* bitmapped config */
static int soft_cfg_mss __initdata = 0; /* bitmapped mss config */ static int soft_cfg_mss __initdata = 0; /* bitmapped mss config */
static int ver[CARDVERLEN] __initdata = {0, 0}; /* DSP Ver: static int ver[CARDVERDIGITS] __initdata = {0, 0}; /* DSP Ver:
hi->ver[0] lo->ver[1] */ hi->ver[0] lo->ver[1] */
#if defined(CONFIG_SC6600) #if defined(CONFIG_SC6600)
...@@ -957,7 +958,7 @@ static int __init aedsp16_dsp_version(int port) ...@@ -957,7 +958,7 @@ static int __init aedsp16_dsp_version(int port)
* string is finished. * string is finished.
*/ */
ver[len++] = ret; ver[len++] = ret;
} while (len < CARDVERLEN); } while (len < CARDVERDIGITS);
sprintf(DSPVersion, "%d.%d", ver[0], ver[1]); sprintf(DSPVersion, "%d.%d", ver[0], ver[1]);
DBG(("success.\n")); DBG(("success.\n"));
......
...@@ -1074,7 +1074,7 @@ int attach_mpu401(struct address_info *hw_config, struct module *owner) ...@@ -1074,7 +1074,7 @@ int attach_mpu401(struct address_info *hw_config, struct module *owner)
sprintf(mpu_synth_info[m].name, "%s (MPU401)", hw_config->name); sprintf(mpu_synth_info[m].name, "%s (MPU401)", hw_config->name);
else else
sprintf(mpu_synth_info[m].name, sprintf(mpu_synth_info[m].name,
"MPU-401 %d.%d%c Midi interface #%d", "MPU-401 %d.%d%c MIDI #%d",
(int) (devc->version & 0xf0) >> 4, (int) (devc->version & 0xf0) >> 4,
devc->version & 0x0f, devc->version & 0x0f,
revision_char, revision_char,
......
...@@ -508,7 +508,7 @@ static void hdmi_write_eld_info(struct snd_info_entry *entry, ...@@ -508,7 +508,7 @@ static void hdmi_write_eld_info(struct snd_info_entry *entry,
char name[64]; char name[64];
char *sname; char *sname;
long long val; long long val;
int n; unsigned int n;
while (!snd_info_get_line(buffer, line, sizeof(line))) { while (!snd_info_get_line(buffer, line, sizeof(line))) {
if (sscanf(line, "%s %llx", name, &val) != 2) if (sscanf(line, "%s %llx", name, &val) != 2)
...@@ -539,7 +539,7 @@ static void hdmi_write_eld_info(struct snd_info_entry *entry, ...@@ -539,7 +539,7 @@ static void hdmi_write_eld_info(struct snd_info_entry *entry,
sname++; sname++;
n = 10 * n + name[4] - '0'; n = 10 * n + name[4] - '0';
} }
if (n < 0 || n > 31) /* double the CEA limit */ if (n >= ELD_MAX_SAD)
continue; continue;
if (!strcmp(sname, "_coding_type")) if (!strcmp(sname, "_coding_type"))
e->sad[n].format = val; e->sad[n].format = val;
......
...@@ -275,13 +275,13 @@ struct alc_spec { ...@@ -275,13 +275,13 @@ struct alc_spec {
*/ */
unsigned int num_init_verbs; unsigned int num_init_verbs;
char stream_name_analog[16]; /* analog PCM stream */ char stream_name_analog[32]; /* analog PCM stream */
struct hda_pcm_stream *stream_analog_playback; struct hda_pcm_stream *stream_analog_playback;
struct hda_pcm_stream *stream_analog_capture; struct hda_pcm_stream *stream_analog_capture;
struct hda_pcm_stream *stream_analog_alt_playback; struct hda_pcm_stream *stream_analog_alt_playback;
struct hda_pcm_stream *stream_analog_alt_capture; struct hda_pcm_stream *stream_analog_alt_capture;
char stream_name_digital[16]; /* digital PCM stream */ char stream_name_digital[32]; /* digital PCM stream */
struct hda_pcm_stream *stream_digital_playback; struct hda_pcm_stream *stream_digital_playback;
struct hda_pcm_stream *stream_digital_capture; struct hda_pcm_stream *stream_digital_capture;
......
...@@ -1809,6 +1809,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { ...@@ -1809,6 +1809,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
"Dell Studio 1537", STAC_DELL_M6_DMIC), "Dell Studio 1537", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0,
"Dell Studio 17", STAC_DELL_M6_DMIC), "Dell Studio 17", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02be,
"Dell Studio 1555", STAC_DELL_M6_DMIC),
{} /* terminator */ {} /* terminator */
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment