summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2000-08-30 20:49:50 +0000
committerbrian <brian@FreeBSD.org>2000-08-30 20:49:50 +0000
commit50a3c4fd88aad613b575bf8a49d0cda2de148164 (patch)
tree8fa3cde7ef4cf793ba62e45bd717bbefdccfa783 /usr.sbin/ppp
parent53ecfd0ecb2df61c99e1a63045e6da9b31efaf5e (diff)
downloadFreeBSD-src-50a3c4fd88aad613b575bf8a49d0cda2de148164.zip
FreeBSD-src-50a3c4fd88aad613b575bf8a49d0cda2de148164.tar.gz
Complain about invalid arguments passed to ``set ifaddr''
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r--usr.sbin/ppp/command.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index 10790ae..2a6ea7d 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -2108,8 +2108,14 @@ AddCommand(struct cmdargs const *arg)
} else if (strcasecmp(arg->argv[arg->argn], "DNS1") == 0) {
addrs = ROUTE_DSTDNS1;
dest = arg->bundle->ncp.ipcp.ns.dns[1];
- } else
+ } else {
dest = GetIpAddr(arg->argv[arg->argn]);
+ if (dest.s_addr == INADDR_NONE) {
+ log_Printf(LogWARN, "%s: Invalid destination address\n",
+ arg->argv[arg->argn]);
+ return -1;
+ }
+ }
netmask = GetIpAddr(arg->argv[arg->argn+1]);
gw = 2;
}
@@ -2117,8 +2123,14 @@ AddCommand(struct cmdargs const *arg)
if (strcasecmp(arg->argv[arg->argn+gw], "HISADDR") == 0) {
gateway = arg->bundle->ncp.ipcp.peer_ip;
addrs |= ROUTE_GWHISADDR;
- } else
+ } else {
gateway = GetIpAddr(arg->argv[arg->argn+gw]);
+ if (gateway.s_addr == INADDR_NONE) {
+ log_Printf(LogWARN, "%s: Invalid gateway address\n",
+ arg->argv[arg->argn + gw]);
+ return -1;
+ }
+ }
if (bundle_SetRoute(arg->bundle, RTM_ADD, dest, gateway, netmask,
arg->cmd->args ? 1 : 0, (addrs & ROUTE_GWHISADDR) ? 1 : 0)
OpenPOWER on IntegriCloud