Avoid some deprecated networking functions

rpminspect trips up on some old networking functions in libgtop, which
are mentioned as deprecated in the Linux man pages.

inet_ntoa() only works on IPv4 addresses, whereas the newer inet_ntop()
works on both IPv4 and IPv6 addresses, so use inet_ntop() instead.
Similarly, use getaddrinfo() rather than gethostbyname(), and avoid
inet_addr() entirely.

https://bugzilla.redhat.com/show_bug.cgi?id=2050712
This commit is contained in:
David King
2022-06-06 17:30:40 +01:00
committed by Robert Roth
parent 66721198b6
commit 5e97014fea
3 changed files with 27 additions and 19 deletions

View File

@@ -66,7 +66,7 @@ main (int argc, char *argv [])
glibtop_netload netload;
unsigned method, count, port;
struct in_addr addr, subnet;
char *address_string, *subnet_string;
char address_string[INET_ADDRSTRLEN], subnet_string[INET_ADDRSTRLEN];
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
char *hwaddress_string;
char buffer [BUFSIZ];
@@ -105,9 +105,8 @@ main (int argc, char *argv [])
addr.s_addr = netload.address;
subnet.s_addr = netload.subnet;
address_string = g_strdup (inet_ntoa (addr));
subnet_string = g_strdup (inet_ntoa (subnet));
inet_ntop (AF_INET, &addr, address_string, INET_ADDRSTRLEN);
inet_ntop (AF_INET, &subnet, subnet_string, INET_ADDRSTRLEN);
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
@@ -153,9 +152,6 @@ main (int argc, char *argv [])
hwaddress_string);
g_free (address_string);
g_free (subnet_string);
glibtop_close ();
exit (0);