diff options
| author | Li Zefan <lizf@cn.fujitsu.com> | 2009-04-09 21:43:59 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2009-04-14 06:39:39 -0400 |
| commit | 85385c1551d509e9e377b7be07ea0e755fb2c3ce (patch) | |
| tree | bb60f13f32f2e4ec341f473475e7616f091125e9 | |
| parent | 68425adcc419bfe90776f59e66b8c4cdb6e1b1f3 (diff) | |
ALSA: sound/usb: use memdup_user()
Remove open-coded memdup_user().
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
| -rw-r--r-- | sound/usb/usx2y/us122l.c | 10 | ||||
| -rw-r--r-- | sound/usb/usx2y/usX2Yhwdep.c | 13 |
2 files changed, 9 insertions, 14 deletions
diff --git a/sound/usb/usx2y/us122l.c b/sound/usb/usx2y/us122l.c index 98276aafefe..012ff1f6f8a 100644 --- a/sound/usb/usx2y/us122l.c +++ b/sound/usb/usx2y/us122l.c | |||
| @@ -349,14 +349,10 @@ static int usb_stream_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, | |||
| 349 | if (cmd != SNDRV_USB_STREAM_IOCTL_SET_PARAMS) | 349 | if (cmd != SNDRV_USB_STREAM_IOCTL_SET_PARAMS) |
| 350 | return -ENOTTY; | 350 | return -ENOTTY; |
| 351 | 351 | ||
| 352 | cfg = kmalloc(sizeof(*cfg), GFP_KERNEL); | 352 | cfg = memdup_user((void *)arg, sizeof(*cfg)); |
| 353 | if (!cfg) | 353 | if (IS_ERR(cfg)) |
| 354 | return -ENOMEM; | 354 | return PTR_ERR(cfg); |
| 355 | 355 | ||
| 356 | if (copy_from_user(cfg, (void *)arg, sizeof(*cfg))) { | ||
| 357 | err = -EFAULT; | ||
| 358 | goto free; | ||
| 359 | } | ||
| 360 | if (cfg->version != USB_STREAM_INTERFACE_VERSION) { | 356 | if (cfg->version != USB_STREAM_INTERFACE_VERSION) { |
| 361 | err = -ENXIO; | 357 | err = -ENXIO; |
| 362 | goto free; | 358 | goto free; |
diff --git a/sound/usb/usx2y/usX2Yhwdep.c b/sound/usb/usx2y/usX2Yhwdep.c index 4af8740db71..f3d8f71265d 100644 --- a/sound/usb/usx2y/usX2Yhwdep.c +++ b/sound/usb/usx2y/usX2Yhwdep.c | |||
| @@ -203,13 +203,12 @@ static int snd_usX2Y_hwdep_dsp_load(struct snd_hwdep *hw, | |||
| 203 | 203 | ||
| 204 | if (access_ok(VERIFY_READ, dsp->image, dsp->length)) { | 204 | if (access_ok(VERIFY_READ, dsp->image, dsp->length)) { |
| 205 | struct usb_device* dev = priv->chip.dev; | 205 | struct usb_device* dev = priv->chip.dev; |
| 206 | char *buf = kmalloc(dsp->length, GFP_KERNEL); | 206 | char *buf; |
| 207 | if (!buf) | 207 | |
| 208 | return -ENOMEM; | 208 | buf = memdup_user(dsp->image, dsp->length); |
| 209 | if (copy_from_user(buf, dsp->image, dsp->length)) { | 209 | if (IS_ERR(buf)) |
| 210 | kfree(buf); | 210 | return PTR_ERR(buf); |
| 211 | return -EFAULT; | 211 | |
| 212 | } | ||
| 213 | err = usb_set_interface(dev, 0, 1); | 212 | err = usb_set_interface(dev, 0, 1); |
| 214 | if (err) | 213 | if (err) |
| 215 | snd_printk(KERN_ERR "usb_set_interface error \n"); | 214 | snd_printk(KERN_ERR "usb_set_interface error \n"); |
