diff --git a/contrib/lease-tools/dhcp_lease_time.c b/contrib/lease-tools/dhcp_lease_time.c index 91edbfa..e2bad3c 100644 --- a/contrib/lease-tools/dhcp_lease_time.c +++ b/contrib/lease-tools/dhcp_lease_time.c @@ -153,7 +153,11 @@ int main(int argc, char **argv) exit(1); } - lease.s_addr = inet_addr(argv[1]); + if (inet_pton(AF_INET, argv[1], &lease) < 1) + { + fprintf(stderr, "invalid address: %s\n", argv[1]); + exit(1); + } memset(&packet, 0, sizeof(packet)); @@ -176,8 +180,8 @@ int main(int argc, char **argv) *(p++) = OPTION_END; - dest.sin_family = AF_INET; - dest.sin_addr.s_addr = inet_addr("127.0.0.1"); + dest.sin_family = AF_INET; + (void)inet_pton(AF_INET, "127.0.0.1", &dest.sin_addr); dest.sin_port = ntohs(DHCP_SERVER_PORT); if (sendto(fd, &packet, sizeof(packet), 0, diff --git a/contrib/lease-tools/dhcp_release.c b/contrib/lease-tools/dhcp_release.c index 30e77c6..c1c835b 100644 --- a/contrib/lease-tools/dhcp_release.c +++ b/contrib/lease-tools/dhcp_release.c @@ -288,13 +288,12 @@ int main(int argc, char **argv) exit(1); } - if (inet_addr(argv[2]) == INADDR_NONE) + if (inet_pton(AF_INET, argv[2], &lease.s_addr) < 1) { perror("invalid ip address"); exit(1); } - lease.s_addr = inet_addr(argv[2]); server = find_interface(lease, nl, if_nametoindex(argv[1]), fd, &ifr); memset(&packet, 0, sizeof(packet)); diff --git a/src/dhcp.c b/src/dhcp.c index 97324f2..3d41a08 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -922,7 +922,7 @@ void dhcp_read_ethers(void) if (!*cp) { - if ((addr.s_addr = inet_addr(ip)) == (in_addr_t)-1) + if (inet_pton(AF_INET, ip, &addr.s_addr) < 1) { my_syslog(MS_DHCP | LOG_ERR, _("bad address at %s line %d"), ETHERSFILE, lineno); continue; diff --git a/src/network.c b/src/network.c index 3ef71b9..3fc179d 100644 --- a/src/network.c +++ b/src/network.c @@ -1688,7 +1688,7 @@ int reload_servers(char *fname) memset(&addr, 0, sizeof(addr)); memset(&source_addr, 0, sizeof(source_addr)); - if ((addr.in.sin_addr.s_addr = inet_addr(token)) != (in_addr_t) -1) + if (inet_pton(AF_INET, token, &addr.in.sin_addr) > 0) { #ifdef HAVE_SOCKADDR_SA_LEN source_addr.in.sin_len = addr.in.sin_len = sizeof(source_addr.in);