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

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda - Fix silent output on Haier W18 laptop
  ALSA: hda: set mute led polarity for laptops with buggy BIOS based on SSID
  ALSA: hda - Fix silent output on ASUS A6Rp
  ALSA: Fix memory leak on error in snd_compr_set_params()
  ALSA: ymfpci - Don't create invalid PCM & mixers when AC97 doesn't support
This commit is contained in:
Linus Torvalds
2012-01-27 07:53:06 -08:00
5 changed files with 54 additions and 21 deletions

View File

@@ -441,19 +441,22 @@ snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg)
params = kmalloc(sizeof(*params), GFP_KERNEL);
if (!params)
return -ENOMEM;
if (copy_from_user(params, (void __user *)arg, sizeof(*params)))
return -EFAULT;
if (copy_from_user(params, (void __user *)arg, sizeof(*params))) {
retval = -EFAULT;
goto out;
}
retval = snd_compr_allocate_buffer(stream, params);
if (retval) {
kfree(params);
return -ENOMEM;
retval = -ENOMEM;
goto out;
}
retval = stream->ops->set_params(stream, params);
if (retval)
goto out;
stream->runtime->state = SNDRV_PCM_STATE_SETUP;
} else
} else {
return -EPERM;
}
out:
kfree(params);
return retval;