ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
snd_emu10k1_fx8010_ioctl(SNDRV_EMU10K1_IOCTL_INFO) allocates memory using kmalloc() and partially fills it by calling snd_emu10k1_fx8010_info() before returning the resulting structure to userspace, leaving uninitialized holes. Let's just use kzalloc() here. BugLink: http://blog.infosectcbr.com.au/2018/09/linux-kernel-infoleaks.html Signed-off-by: Willy Tarreau <w@1wt.eu> Cc: Jann Horn <jannh@google.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
36f3a6e02c
commit
49434c6c57
sound/pci/emu10k1
|
@ -2540,7 +2540,7 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
|
||||||
emu->support_tlv = 1;
|
emu->support_tlv = 1;
|
||||||
return put_user(SNDRV_EMU10K1_VERSION, (int __user *)argp);
|
return put_user(SNDRV_EMU10K1_VERSION, (int __user *)argp);
|
||||||
case SNDRV_EMU10K1_IOCTL_INFO:
|
case SNDRV_EMU10K1_IOCTL_INFO:
|
||||||
info = kmalloc(sizeof(*info), GFP_KERNEL);
|
info = kzalloc(sizeof(*info), GFP_KERNEL);
|
||||||
if (!info)
|
if (!info)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
snd_emu10k1_fx8010_info(emu, info);
|
snd_emu10k1_fx8010_info(emu, info);
|
||||||
|
|
Loading…
Reference in New Issue