diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2016-08-21 15:02:06 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-08-22 08:04:18 -0400 |
commit | c2f14ba749c1ce94aa97c5a84733a89aaaadada4 (patch) | |
tree | 133bcc943cd5ca94b7f5e4024e0e8f65c8eeba47 /sound/core | |
parent | 1bc00f32b87c24f1a981e6dcf3f2174babee93ad (diff) |
ALSA: compress: Use memdup_user() rather than duplicating its implementation
Reuse existing functionality from memdup_user() instead of keeping
duplicate source code.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/compress_offload.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 2c498488af6c..583d4076903a 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c | |||
@@ -553,13 +553,9 @@ snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg) | |||
553 | * we should allow parameter change only when stream has been | 553 | * we should allow parameter change only when stream has been |
554 | * opened not in other cases | 554 | * opened not in other cases |
555 | */ | 555 | */ |
556 | params = kmalloc(sizeof(*params), GFP_KERNEL); | 556 | params = memdup_user((void __user *)arg, sizeof(*params)); |
557 | if (!params) | 557 | if (IS_ERR(params)) |
558 | return -ENOMEM; | 558 | return PTR_ERR(params); |
559 | if (copy_from_user(params, (void __user *)arg, sizeof(*params))) { | ||
560 | retval = -EFAULT; | ||
561 | goto out; | ||
562 | } | ||
563 | 559 | ||
564 | retval = snd_compress_check_input(params); | 560 | retval = snd_compress_check_input(params); |
565 | if (retval) | 561 | if (retval) |