diff mbox series

[1/5] gpio: aggregator: fix "_sysfs" prefix check in gpio_aggregator_make_group()

Message ID 30210ed77b40b4b6629de659cb56b9ec7832c447.1744452787.git.dan.carpenter@linaro.org
State New
Headers show
Series gpio: aggregator: Fix Smatch warnings | expand

Commit Message

Dan Carpenter April 12, 2025, 10:15 a.m. UTC
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(-)

Comments

Geert Uytterhoeven April 14, 2025, 7:52 a.m. UTC | #1
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 mbox series

Patch

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 */