Message ID | 30210ed77b40b4b6629de659cb56b9ec7832c447.1744452787.git.dan.carpenter@linaro.org |
---|---|
State | New |
Headers | show |
Series | gpio: aggregator: Fix Smatch warnings | expand |
Hi Dan, On Sat, 12 Apr 2025 at 12:15, Dan Carpenter <dan.carpenter@linaro.org> wrote: > This code is intended to reject strings that start with "_sysfs" but the > strcmp() limit is wrong so checks the whole string instead of the prefix. > > Fixes: 83c8e3df642f ("gpio: aggregator: expose aggregator created via legacy sysfs to configfs") > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- a/drivers/gpio/gpio-aggregator.c > +++ b/drivers/gpio/gpio-aggregator.c > @@ -1016,7 +1016,7 @@ gpio_aggregator_make_group(struct config_group *group, const char *name) > * for devices create via legacy sysfs interface. > */ > if (strncmp(name, AGGREGATOR_LEGACY_PREFIX, > - sizeof(AGGREGATOR_LEGACY_PREFIX)) == 0) > + sizeof(AGGREGATOR_LEGACY_PREFIX) - 1) == 0) Or perhaps just strlen()? The compiler should optimize that to a constant, too. > return ERR_PTR(-EINVAL); > > /* arg space is unneeded */ Gr{oetje,eeting}s, Geert
diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c index dde969f29ee2..b4c9e373a6ec 100644 --- a/drivers/gpio/gpio-aggregator.c +++ b/drivers/gpio/gpio-aggregator.c @@ -1016,7 +1016,7 @@ gpio_aggregator_make_group(struct config_group *group, const char *name) * for devices create via legacy sysfs interface. */ if (strncmp(name, AGGREGATOR_LEGACY_PREFIX, - sizeof(AGGREGATOR_LEGACY_PREFIX)) == 0) + sizeof(AGGREGATOR_LEGACY_PREFIX) - 1) == 0) return ERR_PTR(-EINVAL); /* arg space is unneeded */
This code is intended to reject strings that start with "_sysfs" but the strcmp() limit is wrong so checks the whole string instead of the prefix. Fixes: 83c8e3df642f ("gpio: aggregator: expose aggregator created via legacy sysfs to configfs") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> --- drivers/gpio/gpio-aggregator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)