Later error-handling frees buf, but the first early exit doesn't.
Move buf beyond it to fix the memory leak.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 commands/readline.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/commands/readline.c b/commands/readline.c
index 403ac8563a36..7933a58c08b4 100644
--- a/commands/readline.c
+++ b/commands/readline.c
@@ -10,11 +10,13 @@
 
 static int do_readline(int argc, char *argv[])
 {
-       char *buf = xzalloc(CONFIG_CBSIZE);
+       char *buf;
 
        if (argc < 3)
                return COMMAND_ERROR_USAGE;
 
+       buf = xzalloc(CONFIG_CBSIZE);
+
        command_slice_release();
 
        if (readline(argv[1], buf, CONFIG_CBSIZE) < 0) {
-- 
2.29.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to