diff options
author | cy <cy@FreeBSD.org> | 2013-09-21 14:22:07 +0000 |
---|---|---|
committer | cy <cy@FreeBSD.org> | 2013-09-21 14:22:07 +0000 |
commit | b3f0452e3485d31d295010234a8951b1129a6f0b (patch) | |
tree | 87eb498eb55ff0735b075a9d68dc4b31cc9d21c2 /contrib/ipfilter | |
parent | 0889f75af2f838473476f92c2ed27c3b06d90077 (diff) | |
download | FreeBSD-src-b3f0452e3485d31d295010234a8951b1129a6f0b.zip FreeBSD-src-b3f0452e3485d31d295010234a8951b1129a6f0b.tar.gz |
Check return code from inet_pton.
Discovered by: Coverity.
Approved by: glebius (mentor)
Approved by: re (blanket)
Diffstat (limited to 'contrib/ipfilter')
-rw-r--r-- | contrib/ipfilter/ip_fil.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/contrib/ipfilter/ip_fil.c b/contrib/ipfilter/ip_fil.c index 208602a..9178bd3 100644 --- a/contrib/ipfilter/ip_fil.c +++ b/contrib/ipfilter/ip_fil.c @@ -228,7 +228,19 @@ ipf_setifpaddr(ifp, addr) sin6 = (struct sockaddr_in6 *)&ifa->ifa_addr; sin6->sin6_family = AF_INET6; - inet_pton(AF_INET6, addr, &sin6->sin6_addr); + /* Abort if bad address. */ + switch (inet_pton(AF_INET6, addr, &sin6->sin6_addr)) + { + case 1: + break; + case -1: + perror("inet_pton"); + abort(); + break; + default: + abort(); + break; + } } else #endif { |