diff options
author | brian <brian@FreeBSD.org> | 2000-08-30 20:49:50 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2000-08-30 20:49:50 +0000 |
commit | 50a3c4fd88aad613b575bf8a49d0cda2de148164 (patch) | |
tree | 8fa3cde7ef4cf793ba62e45bd717bbefdccfa783 /usr.sbin/ppp | |
parent | 53ecfd0ecb2df61c99e1a63045e6da9b31efaf5e (diff) | |
download | FreeBSD-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.c | 16 |
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) |