From 7a7e97ad94afd718ac9ed4443055cf6de5b15178 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 9 Sep 2020 19:38:04 +0200 Subject: [PATCH] sd-login: fix memory leak Fixes: CID1432652 --- src/libsystemd/sd-login/sd-login.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libsystemd/sd-login/sd-login.c b/src/libsystemd/sd-login/sd-login.c index 601a27ab570..d8baa6f8af5 100644 --- a/src/libsystemd/sd-login/sd-login.c +++ b/src/libsystemd/sd-login/sd-login.c @@ -916,14 +916,14 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices) if (!tt) return -ENOMEM; - size_t n = 0; - int *ifindices; + _cleanup_free_ int *ifindices = NULL; if (ret_ifindices) { ifindices = new(int, strv_length(tt)); if (!ifindices) return -ENOMEM; } + size_t n = 0; for (size_t i = 0; tt[i]; i++) { int ind; @@ -938,7 +938,8 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices) } if (ret_ifindices) - *ret_ifindices = ifindices; + *ret_ifindices = TAKE_PTR(ifindices); + return n; } -- 2.47.3