[PATCH GSoC RFC v13 01/12] transport-helper: fix memory leak of helper on disconnect
- From
Pablo Sabater <pabloosabaterr@gmail.com>
- Date
- Jun 19, 2026, 14:56 UTC
- Message-ID
- <20260619-ps-eric-work-rebase-v13-1-3d4c7315d2f8@gmail.com>
- In-Reply-To
- <20260619-ps-eric-work-rebase-v13-0-3d4c7315d2f8@gmail.com>
disconnect_helper() only frees data inside of the if(data->helper) block [1]. When the transport is disconnected without the helper being fully started, data->name allocated in transport_helper_init() is never freed.
Move FREE_AND_NULL(data->name) outside the conditional block so it's always freed on disconnect.
[1]: https://lore.kernel.org/git/05fbadbae2184479c87c37675dde7bd79b3e32ab.1716465556.git.ps@pks.im/
Mentored-by: Karthik Nayak <karthik.188@gmail.com> Mentored-by: Chandra Pratap <chandrapratap3519@gmail.com> Signed-off-by: Pablo Sabater <pabloosabaterr@gmail.com> --- transport-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/transport-helper.c b/transport-helper.c index 0fa0eb2d72..8a71354d50 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -266,9 +266,9 @@ static int disconnect_helper(struct transport *transport) close(data->helper->out); fclose(data->out); res = finish_command(data->helper); - FREE_AND_NULL(data->name); FREE_AND_NULL(data->helper); } + FREE_AND_NULL(data->name); return res; }
-- 2.54.0