Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e352343 authored by David Lin's avatar David Lin Committed by Greg Kroah-Hartman
Browse files

greybus: light: fix incorrect led attribute files allocation



Fix incorrect attribute size when the channel supports fader, as well as
fixing the issue that the attribute list is not null terminated.

Testing Done:
 - Verified by setting brightness and color on red/green/blue leds
   of the device class test board.

Signed-off-by: default avatarDavid Lin <dtwlin@google.com>
Reviewed-by: default avatarRui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent f0ec8cd5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -293,13 +293,14 @@ static int channel_attr_groups_set(struct gb_channel *channel,
	if (channel->flags & GB_LIGHT_CHANNEL_MULTICOLOR)
		size++;
	if (channel->flags & GB_LIGHT_CHANNEL_FADER)
		size++;
		size += 2;

	if (!size)
		return 0;

	/* Set attributes based in the channel flags */
	channel->attrs = kcalloc(size, sizeof(**channel->attrs), GFP_KERNEL);
	channel->attrs = kcalloc(size + 1, sizeof(**channel->attrs),
				 GFP_KERNEL);
	if (!channel->attrs)
		return -ENOMEM;
	channel->attr_group = kcalloc(1, sizeof(*channel->attr_group),