Commit f4ace70f authored by Pedro Demarchi Gomes's avatar Pedro Demarchi Gomes Committed by Takashi Iwai
Browse files

ALSA: usb: fpc: replace kmalloc_array followed by copy_from_user with memdup_array_user



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: default avatarPedro Demarchi Gomes <pedrodemargomes@gmail.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 7ddb711b
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -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)