mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 01:40:33 +00:00
lib: make sockunion2str safer to use
It's mostly used for logging, and the return value is never checked, so try to make it valid. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 53009d387a633997b16d32224b50451b5c81b61a)
This commit is contained in:
parent
d3830f1fa4
commit
67e2b6f013
@ -166,13 +166,20 @@ str2sockunion (const char *str, union sockunion *su)
|
||||
const char *
|
||||
sockunion2str (union sockunion *su, char *buf, size_t len)
|
||||
{
|
||||
if (su->sa.sa_family == AF_INET)
|
||||
return inet_ntop (AF_INET, &su->sin.sin_addr, buf, len);
|
||||
switch (sockunion_family(su))
|
||||
{
|
||||
case AF_UNSPEC:
|
||||
snprintf (buf, len, "(unspec)");
|
||||
return buf;
|
||||
case AF_INET:
|
||||
return inet_ntop (AF_INET, &su->sin.sin_addr, buf, len);
|
||||
#ifdef HAVE_IPV6
|
||||
else if (su->sa.sa_family == AF_INET6)
|
||||
return inet_ntop (AF_INET6, &su->sin6.sin6_addr, buf, len);
|
||||
case AF_INET6:
|
||||
return inet_ntop (AF_INET6, &su->sin6.sin6_addr, buf, len);
|
||||
#endif /* HAVE_IPV6 */
|
||||
return NULL;
|
||||
}
|
||||
snprintf (buf, len, "(af %d)", sockunion_family(su));
|
||||
return buf;
|
||||
}
|
||||
|
||||
union sockunion *
|
||||
|
Loading…
Reference in New Issue
Block a user