[PATCH] serial: ns16550: fix memory leak of linux_earlycon_name on probe failure
Alexander Shiyan
eagle.alexander923 at gmail.com
Mon Aug 31 05:04:17 PDT 2026
When console_register() fails, the dynamically allocated
linux_earlycon_name string was not freed, leading to a memory leak.
Add a free_const() call on the error path to release it.
Also simplify the success path by returning 0 directly after
successful registration, making the code more readable.
Signed-off-by: Alexander Shiyan <eagle.alexander923 at gmail.com>
---
drivers/serial/serial_ns16550.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c
index 72bf8e4647..2c6ddabf85 100644
--- a/drivers/serial/serial_ns16550.c
+++ b/drivers/serial/serial_ns16550.c
@@ -554,12 +554,11 @@ static int ns16550_probe(struct device *dev)
devtype->init_port(cdev);
ret = console_register(cdev);
- if (ret)
- goto clk_disable;
+ if (!ret)
+ return 0;
- return 0;
+ free_const(cdev->linux_earlycon_name);
-clk_disable:
clk_disable(priv->clk);
clk_put(priv->clk);
release_region:
--
2.52.0
More information about the barebox
mailing list