From: Mike Yuan Date: Sun, 7 Apr 2024 17:35:24 +0000 (+0800) Subject: core/service: use GREEDY_REALLOC_APPEND X-Git-Tag: v256-rc1~270^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d83e0c20ec50ea6b9da197a977f02ad140fc5e8;p=thirdparty%2Fsystemd.git core/service: use GREEDY_REALLOC_APPEND --- 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)