summaryrefslogtreecommitdiff
path: root/drivers/power/supply
diff options
context:
space:
mode:
authorNathan Chancellor <nathan@kernel.org>2024-07-02 17:48:48 +0300
committerTzung-Bi Shih <tzungbi@kernel.org>2024-07-03 08:54:29 +0300
commitc98f17fec35e46629272226a898ebb0a653ee270 (patch)
tree40e7310b007f0ef2b728036805fa35f5dc5243db /drivers/power/supply
parent3664706e875f84bd4e3fa25ed1c6e46934cb32cd (diff)
downloadlinux-c98f17fec35e46629272226a898ebb0a653ee270.tar.xz
power: supply: cros_charge-control: Avoid accessing attributes out of bounds
Clang warns (or errors with CONFIG_WERROR=y): drivers/power/supply/cros_charge-control.c:319:2: error: array index 3 is past the end of the array (that has type 'struct attribute *[3]') [-Werror,-Warray-bounds] 319 | priv->attributes[_CROS_CHCTL_ATTR_COUNT] = NULL; | ^ ~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/cros_charge-control.c:49:2: note: array 'attributes' declared here 49 | struct attribute *attributes[_CROS_CHCTL_ATTR_COUNT]; | ^ 1 error generated. In earlier revisions of the driver, the attributes array in cros_chctl_priv had four elements with four distinct assignments but during review, the number of elements was changed to three through use of an enum and the assignments became a for loop, except for this one, which is now out of bounds. This assignment is no longer necessary because the size of the attributes array no longer accounts for it, so just remove it to clear up the warning. Fixes: c6ed48ef5259 ("power: supply: add ChromeOS EC based charge control driver") Signed-off-by: Nathan Chancellor <nathan@kernel.org> Acked-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240702-cros_charge-control-fix-clang-array-bounds-warning-v1-1-ae04d995cd1d@kernel.org Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Diffstat (limited to 'drivers/power/supply')
-rw-r--r--drivers/power/supply/cros_charge-control.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/power/supply/cros_charge-control.c b/drivers/power/supply/cros_charge-control.c
index 73d7f2dc0fa3..2dd8ddbd56bc 100644
--- a/drivers/power/supply/cros_charge-control.c
+++ b/drivers/power/supply/cros_charge-control.c
@@ -316,7 +316,6 @@ static int cros_chctl_probe(struct platform_device *pdev)
sysfs_attr_init(&priv->device_attrs[i].attr);
priv->attributes[i] = &priv->device_attrs[i].attr;
}
- priv->attributes[_CROS_CHCTL_ATTR_COUNT] = NULL;
priv->group.is_visible = cros_chtl_attr_is_visible;
priv->group.attrs = priv->attributes;