[PATCH v2025.09.y 49/49] eeprom: at24: unregister devices in error path
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Dec 19 01:21:25 PST 2025
From: Sascha Hauer <s.hauer at pengutronix.de>
The AT24 driver might register some i2c devices using i2c_new_dummy().
These are freed in the error path, but not unregistered which leads to
memory corruptions later.
Link: https://lore.barebox.org/20251217145156.1581678-3-s.hauer@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
(cherry picked from commit ebd2558bf99b3758854ac2b104cff7cfbd2cebb9)
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
drivers/eeprom/at24.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/eeprom/at24.c b/drivers/eeprom/at24.c
index 667d111b349d..feb11b1cbb18 100644
--- a/drivers/eeprom/at24.c
+++ b/drivers/eeprom/at24.c
@@ -492,8 +492,11 @@ static int at24_probe(struct device *dev)
err_devfs_create:
err_clients:
- for (i = 1; i < num_addresses; i++)
+ for (i = 1; i < num_addresses; i++) {
+ if (at24->client[i])
+ i2c_unregister_device(at24->client[i]);
kfree(at24->client[i]);
+ }
if (gpio_is_valid(at24->wp_gpio))
gpio_free(at24->wp_gpio);
--
2.47.3
More information about the barebox
mailing list