From: Marco Felsch <m.felsch@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Jules Maselbas <jmaselbas@kalray.eu>
Subject: [PATCH 04/10] gpiolib: fix gpio name memory leak
Date: Fri, 2 Jun 2023 09:49:15 +0200 [thread overview]
Message-ID: <20230602074921.2687669-5-m.felsch@pengutronix.de> (raw)
In-Reply-To: <20230602074921.2687669-1-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>
---
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 eb2bba042e..f05e2ac735 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
next prev parent reply other threads:[~2023-06-02 7:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 7:49 [PATCH 00/10] Fix gpio-hogs and sync with Linux gpiolib Marco Felsch
2023-06-02 7:49 ` [PATCH 01/10] gpiolib: fix gpio-hog functionality Marco Felsch
2023-06-13 7:36 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 02/10] gpiolib: simplify for loop break condition Marco Felsch
2023-06-13 7:37 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 03/10] gpiolib: rename local gpio-line-names variable Marco Felsch
2023-06-13 7:38 ` Ahmad Fatoum
2023-06-02 7:49 ` Marco Felsch [this message]
2023-06-13 7:39 ` [PATCH 04/10] gpiolib: fix gpio name memory leak Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 05/10] gpiolib: fix missing error check while query gpio-line-names Marco Felsch
2023-06-13 7:43 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 06/10] gpiolib: refactor gpio-line-names parsing Marco Felsch
2023-06-13 7:44 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 07/10] gpiolib: introduce of_gpiochip_add to bundle all of functions Marco Felsch
2023-06-13 7:46 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 08/10] OF: gpio: snyc of_get_named_gpio_flags variable with kernel Marco Felsch
2023-06-02 8:04 ` Jules Maselbas
2023-06-13 7:46 ` Ahmad Fatoum
2023-06-02 7:49 ` [PATCH 09/10] OF: gpio: fix device_node leakage Marco Felsch
2023-06-13 7:49 ` Ahmad Fatoum
2023-06-13 8:22 ` Marco Felsch
2023-06-02 7:49 ` [PATCH 10/10] gpiolib: add of_xlate support Marco Felsch
2023-06-02 8:11 ` Jules Maselbas
2023-06-05 7:49 ` Jules Maselbas
2023-06-05 9:51 ` Marco Felsch
2023-06-13 7:58 ` Ahmad Fatoum
2023-06-13 13:05 ` Ahmad Fatoum
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=20230602074921.2687669-5-m.felsch@pengutronix.de \
--to=m.felsch@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=jmaselbas@kalray.eu \
/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