From: Zbigniew Jędrzejewski-Szmek Date: Tue, 19 Mar 2024 19:40:57 +0000 (+0100) Subject: basic/socket-util: use strdup_to() in sockaddr_pretty() X-Git-Tag: v256-rc1~459^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4eb3ec63b06d8dbeef77875db2be12e161515992;p=thirdparty%2Fsystemd.git basic/socket-util: use strdup_to() in sockaddr_pretty() The function was written to support ret==NULL, but the only caller always passes ret, and sockaddr_pretty() also requires ret to be set, so that half-implemented code wasn't very useful. --- diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index 68e6afc67fc..5eb8e4c9885 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -453,6 +453,7 @@ int sockaddr_pretty( assert(sa); assert(salen >= sizeof(sa->sa.sa_family)); + assert(ret); switch (sa->sa.sa_family) { @@ -634,6 +635,7 @@ int socknameinfo_pretty(const struct sockaddr *sa, socklen_t salen, char **ret) assert(sa); assert(salen > sizeof(sa_family_t)); + assert(ret); r = getnameinfo(sa, salen, host, sizeof(host), /* service= */ NULL, /* service_len= */ 0, IDN_FLAGS); if (r != 0) { @@ -647,15 +649,7 @@ int socknameinfo_pretty(const struct sockaddr *sa, socklen_t salen, char **ret) return sockaddr_pretty(sa, salen, /* translate_ipv6= */ true, /* include_port= */ true, ret); } - if (ret) { - char *copy = strdup(host); - if (!copy) - return -ENOMEM; - - *ret = copy; - } - - return 0; + return strdup_to(ret, host); } static const char* const netlink_family_table[] = {