From: Lennart Poettering Date: Wed, 9 Sep 2020 17:38:04 +0000 (+0200) Subject: sd-login: fix memory leak X-Git-Tag: v247-rc1~270^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16997%2Fhead;p=thirdparty%2Fsystemd.git sd-login: fix memory leak Fixes: CID1432652 --- 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; }