diff options
author | 1999-06-05 17:04:59 +0000 | |
---|---|---|
committer | 1999-06-05 17:04:59 +0000 | |
commit | b59e3d11c34d4a632a33a4bc3bf3378855fe9c88 (patch) | |
tree | da47ed54af79285cd27280c93684d1ad4849ea5a | |
parent | more .Os cleanup, remove some trailing whitespace, cleanse some .Nm (diff) | |
download | wireguard-openbsd-b59e3d11c34d4a632a33a4bc3bf3378855fe9c88.tar.xz wireguard-openbsd-b59e3d11c34d4a632a33a4bc3bf3378855fe9c88.zip |
use inet_aton()
-rw-r--r-- | sbin/ipsecadm/ipsecadm.c | 37 | ||||
-rw-r--r-- | usr.bin/w/w.c | 11 |
2 files changed, 36 insertions, 12 deletions
diff --git a/sbin/ipsecadm/ipsecadm.c b/sbin/ipsecadm/ipsecadm.c index 21615834926..8e9af4c7191 100644 --- a/sbin/ipsecadm/ipsecadm.c +++ b/sbin/ipsecadm/ipsecadm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ipsecadm.c,v 1.17 1999/04/18 15:06:58 provos Exp $ */ +/* $OpenBSD: ipsecadm.c,v 1.18 1999/06/05 17:05:34 deraadt Exp $ */ /* * The authors of this code are John Ioannidis (ji@tla.org), * Angelos D. Keromytis (kermit@csd.uch.gr) and @@ -511,7 +511,12 @@ main(int argc, char **argv) { proxy.sin.sin_family = AF_INET; proxy.sin.sin_len = sizeof(struct sockaddr_in); - proxy.sin.sin_addr.s_addr = inet_addr(argv[i + 1]); + if (!inet_aton(argv[i + 1], &proxy.sin.sin_addr)) { + fprintf(stderr, + "%s: Warning: proxy address %s is not valid\n", + argv[i + 1]); + exit(1); + } sad3.sadb_address_exttype = SADB_EXT_ADDRESS_PROXY; sad3.sadb_address_len = 1 + sizeof(struct sockaddr_in) / 8; i++; @@ -589,10 +594,30 @@ main(int argc, char **argv) osmask.sin.sin_len = sizeof(struct sockaddr_in); odmask.sin.sin_len = sizeof(struct sockaddr_in); - osrc.sin.sin_addr.s_addr = inet_addr(argv[i + 1]); i++; - osmask.sin.sin_addr.s_addr = inet_addr(argv[i + 1]); i++; - odst.sin.sin_addr.s_addr = inet_addr(argv[i + 1]); i++; - odmask.sin.sin_addr.s_addr = inet_addr(argv[i + 1]); i++; + if (!inet_aton(argv[i + 1], &osrc.sin.sin_addr)) { + fprintf(stderr, "%s: source address %s is not valid\n", argv[0], + argv[i + 1]); + exit(1); + } + i++; + if (!inet_aton(argv[i + 1], &osmask.sin.sin_addr)) { + fprintf(stderr, "%s: source netmask %s is not valid\n", argv[0], + argv[i + 1]); + exit(1); + } + i++; + if (!inet_aton(argv[i + 1], &odst.sin.sin_addr)) { + fprintf(stderr, "%s: destination address %s is not valid\n", argv[0], + argv[i + 1]); + exit(1); + } + i++; + if (!inet_aton(argv[i + 1], &odmask.sin.sin_addr)) { + fprintf(stderr, "%s: destination netmask %s is not valid\n", argv[0], + argv[i + 1]); + exit(1); + } + i++; continue; } diff --git a/usr.bin/w/w.c b/usr.bin/w/w.c index 57988ec5c09..5c8f4252d56 100644 --- a/usr.bin/w/w.c +++ b/usr.bin/w/w.c @@ -1,4 +1,4 @@ -/* $OpenBSD: w.c,v 1.26 1999/04/25 00:33:56 millert Exp $ */ +/* $OpenBSD: w.c,v 1.27 1999/06/05 17:04:59 deraadt Exp $ */ /*- * Copyright (c) 1980, 1991, 1993, 1994 @@ -43,7 +43,7 @@ static char copyright[] = #if 0 static char sccsid[] = "@(#)w.c 8.4 (Berkeley) 4/16/94"; #else -static char *rcsid = "$OpenBSD: w.c,v 1.26 1999/04/25 00:33:56 millert Exp $"; +static char *rcsid = "$OpenBSD: w.c,v 1.27 1999/06/05 17:04:59 deraadt Exp $"; #endif #endif /* not lint */ @@ -127,7 +127,7 @@ main(argc, argv) struct hostent *hp; struct stat *stp; FILE *ut; - u_long l; + struct in_addr addr; int ch, i, nentries, nusers, wcmd; char *memf, *nlistf, *p, *x; char buf[MAXHOSTNAMELEN], errbuf[_POSIX2_LINE_MAX]; @@ -319,9 +319,8 @@ main(argc, argv) *x++ = '\0'; break; } - if (!nflag && isdigit(*p) && - (long)(l = inet_addr(p)) != -1 && - (hp = gethostbyaddr((char *)&l, sizeof(l), AF_INET))) { + if (!nflag && inet_aton(p, &addr) && + (hp = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET))) { if (domain[0] != '\0') { p = hp->h_name; p += strlen(hp->h_name); |