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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2024-03-19 20:40:57 +01:00
parent f394876140
commit 4eb3ec63b0

View File

@@ -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[] = {