mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: mfe@pengutronix.de, Jules Maselbas <jmaselbas@kalray.eu>,
	Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH v2 04/10] gpiolib: fix gpio name memory leak
Date: Wed, 14 Jun 2023 12:07:41 +0200	[thread overview]
Message-ID: <20230614100747.3368109-5-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20230614100747.3368109-1-a.fatoum@pengutronix.de>

From: Marco Felsch <m.felsch@pengutronix.de>

We never freed the name allocated by xstrdup(). Fix this by use the
const devicetree property value. While on it check if the name is valid
and add the comment to align the code with the kernel.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
v1 -> v2:
  - no change
---
 drivers/gpio/gpiolib.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index eb2bba042e49..f05e2ac7356a 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -18,7 +18,7 @@ struct gpio_info {
 	bool requested;
 	bool active_low;
 	char *label;
-	char *name;
+	const char *name;
 };
 
 static struct gpio_info *gpio_desc;
@@ -537,8 +537,16 @@ static int of_gpiochip_scan_hogs(struct gpio_chip *chip)
 		if (count > chip->ngpio)
 			count = chip->ngpio;
 
-		for (i = 0; i < count; i++)
-			gpio_desc[chip->base + i].name = xstrdup(names[i]);
+		for (i = 0; i < count; i++) {
+			/*
+			 * Allow overriding "fixed" names provided by the GPIO
+			 * provider. The "fixed" names are more often than not
+			 * generic and less informative than the names given in
+			 * device properties.
+			 */
+			if (names[i] && names[i][0])
+				gpio_desc[chip->base + i].name = names[i];
+		}
 
 		free(names);
 	}
-- 
2.39.2




  parent reply	other threads:[~2023-06-14 10:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-14 10:07 [PATCH v2 00/10] Fix gpio-hogs and sync with Linux gpiolib Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 01/10] gpiolib: fix gpio-hog functionality Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 02/10] gpiolib: simplify for loop break condition Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 03/10] gpiolib: rename local gpio-line-names variable Ahmad Fatoum
2023-06-14 10:07 ` Ahmad Fatoum [this message]
2023-06-14 10:07 ` [PATCH v2 05/10] gpiolib: fix missing error check while query gpio-line-names Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 06/10] gpiolib: refactor gpio-line-names parsing Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 07/10] gpiolib: introduce of_gpiochip_add to bundle all of functions Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 08/10] OF: gpio: sync of_get_named_gpio_flags variable with kernel Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 09/10] OF: gpio: call of_node_put in of_get_named_gpio_flags Ahmad Fatoum
2023-06-14 10:07 ` [PATCH v2 10/10] gpiolib: add of_xlate support Ahmad Fatoum
2023-06-16  8:14   ` Sascha Hauer
2023-06-16 12:13     ` Marco Felsch
2023-06-14 14:19 ` [PATCH v2 00/10] Fix gpio-hogs and sync with Linux gpiolib Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230614100747.3368109-5-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=jmaselbas@kalray.eu \
    --cc=mfe@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox