diff options
author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2003-08-18 16:09:59 +0000 |
---|---|---|
committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2003-08-18 16:09:59 +0000 |
commit | 8ecfc219e13eb783080956a56365a3d94782a04c (patch) | |
tree | 1db03b26770fd9cd62e126093820e0f0fd331d84 /usr.sbin/route6d | |
parent | c706c1cddcbc088608fe2d86da5e50c048e897bd (diff) | |
download | src-8ecfc219e13eb783080956a56365a3d94782a04c.tar.gz src-8ecfc219e13eb783080956a56365a3d94782a04c.zip |
atoi -> strtoul
Obtained from: KAME
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=119083
Diffstat (limited to 'usr.sbin/route6d')
-rw-r--r-- | usr.sbin/route6d/route6d.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c index 9a2507b2c877..022977079910 100644 --- a/usr.sbin/route6d/route6d.c +++ b/usr.sbin/route6d/route6d.c @@ -3049,13 +3049,14 @@ void filterconfig() { int i; - char *p, *ap, *iflp, *ifname; + char *p, *ap, *iflp, *ifname, *ep; struct iff ftmp, *iff_obj; struct ifc *ifcp; struct riprt *rrt; #if 0 struct in6_addr gw; #endif + u_long plen; for (i = 0; i < nfilter; i++) { ap = filter[i]; @@ -3078,7 +3079,14 @@ filterconfig() fatal("invalid prefix specified for '%s'", ap); /*NOTREACHED*/ } - ftmp.iff_plen = atoi(p); + errno = 0; + ep = NULL; + plen = strtoul(p, &ep, 10); + if (errno || !*p || *ep || plen > sizeof(ftmp.iff_addr) * 8) { + fatal("invalid prefix length specified for '%s'", ap); + /*NOTREACHED*/ + } + ftmp.iff_plen = plen; ftmp.iff_next = NULL; applyplen(&ftmp.iff_addr, ftmp.iff_plen); ifonly: |