[ALSA] emu10k1 - Fix memory corruption

The number of mixer elements for SPDIF control don't match with the
actual array size (3).  This may result in a memory corruption that
overwrites the i2c_capture_source field (ALSA bug#3095).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
Takashi Iwai 2007-08-16 19:32:16 +02:00 committed by Jaroslav Kysela
parent 542d7c6620
commit 7583cb51a1

View file

@ -896,7 +896,7 @@ static struct snd_kcontrol_new snd_emu10k1_spdif_mask_control =
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.count = 4, .count = 3,
.info = snd_emu10k1_spdif_info, .info = snd_emu10k1_spdif_info,
.get = snd_emu10k1_spdif_get_mask .get = snd_emu10k1_spdif_get_mask
}; };
@ -905,7 +905,7 @@ static struct snd_kcontrol_new snd_emu10k1_spdif_control =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.count = 4, .count = 3,
.info = snd_emu10k1_spdif_info, .info = snd_emu10k1_spdif_info,
.get = snd_emu10k1_spdif_get, .get = snd_emu10k1_spdif_get,
.put = snd_emu10k1_spdif_put .put = snd_emu10k1_spdif_put