[PATCH] ALSA: usb: fpc: replace kmalloc_array followed by copy_from_user with memdup_array_user

Pedro Demarchi Gomes posted 1 patch 4 months ago
sound/usb/fcp.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
[PATCH] ALSA: usb: fpc: replace kmalloc_array followed by copy_from_user with memdup_array_user
Posted by Pedro Demarchi Gomes 4 months ago
Replace kmalloc_array() followed by copy_from_user() with
memdup_array_user() to improve and simplify fcp_ioctl_set_meter_map().

No functional changes intended.

Signed-off-by: Pedro Demarchi Gomes <pedrodemargomes@gmail.com>
---
 sound/usb/fcp.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/sound/usb/fcp.c b/sound/usb/fcp.c
index 5ee8d8b66058..11e9a96b46ff 100644
--- a/sound/usb/fcp.c
+++ b/sound/usb/fcp.c
@@ -641,12 +641,9 @@ static int fcp_ioctl_set_meter_map(struct usb_mixer_interface *mixer,
 		return -EINVAL;
 
 	/* Allocate and copy the map data */
-	tmp_map = kmalloc_array(map.map_size, sizeof(s16), GFP_KERNEL);
-	if (!tmp_map)
-		return -ENOMEM;
-
-	if (copy_from_user(tmp_map, arg->map, map.map_size * sizeof(s16)))
-		return -EFAULT;
+	tmp_map = memdup_array_user(arg->map, map.map_size, sizeof(s16));
+	if (IS_ERR(tmp_map))
+		return PTR_ERR(tmp_map);
 
 	err = validate_meter_map(tmp_map, map.map_size, map.meter_slots);
 	if (err < 0)
-- 
2.43.0
Re: [PATCH] ALSA: usb: fpc: replace kmalloc_array followed by copy_from_user with memdup_array_user
Posted by Takashi Iwai 4 months ago
On Tue, 07 Oct 2025 14:00:57 +0200,
Pedro Demarchi Gomes wrote:
> 
> Replace kmalloc_array() followed by copy_from_user() with
> memdup_array_user() to improve and simplify fcp_ioctl_set_meter_map().
> 
> No functional changes intended.
> 
> Signed-off-by: Pedro Demarchi Gomes <pedrodemargomes@gmail.com>

Applied now.  Thanks.


Takashi