From 8d83e0c20ec50ea6b9da197a977f02ad140fc5e8 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Mon, 8 Apr 2024 01:35:24 +0800 Subject: [PATCH] core/service: use GREEDY_REALLOC_APPEND --- src/core/service.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/core/service.c b/src/core/service.c index 61b2b9a9554..21f8b47a0c7 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1405,8 +1405,8 @@ static int service_collect_fds( UNIT_FOREACH_DEPENDENCY(u, UNIT(s), UNIT_ATOM_TRIGGERED_BY) { _cleanup_free_ int *cfds = NULL; - Socket *sock; int cn_fds; + Socket *sock; sock = SOCKET(u); if (!sock) @@ -1422,18 +1422,8 @@ static int service_collect_fds( if (!rfds) { rfds = TAKE_PTR(cfds); rn_socket_fds = cn_fds; - } else { - int *t; - - t = reallocarray(rfds, rn_socket_fds + cn_fds, sizeof(int)); - if (!t) - return -ENOMEM; - - memcpy(t + rn_socket_fds, cfds, cn_fds * sizeof(int)); - - rfds = t; - rn_socket_fds += cn_fds; - } + } else if (!GREEDY_REALLOC_APPEND(rfds, rn_socket_fds, cfds, cn_fds)) + return -ENOMEM; r = strv_extend_n(&rfd_names, socket_fdname(sock), cn_fds); if (r < 0) -- 2.47.3