diff options
| author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2007-03-01 16:13:56 +0000 |
|---|---|---|
| committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2007-03-01 16:13:56 +0000 |
| commit | a404ab168ebf90e65af1e0b6311f2b4ea8019ca2 (patch) | |
| tree | 62c02b5ef38a279b1f48bc46f499941a952d5b96 /usr.sbin | |
| parent | 857be7a47c8a42e433be090e92d89828a8ba1596 (diff) | |
Notes
Diffstat (limited to 'usr.sbin')
| -rw-r--r-- | usr.sbin/ppp/radius.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/ppp/radius.c b/usr.sbin/ppp/radius.c index 85183965e5d7..c26059ead9ab 100644 --- a/usr.sbin/ppp/radius.c +++ b/usr.sbin/ppp/radius.c @@ -453,7 +453,13 @@ radius_Process(struct radius *r, int got) #ifndef NOINET6 case RAD_FRAMED_IPV6_PREFIX: free(r->ipv6prefix); - r->ipv6prefix = rad_cvt_ipv6prefix(data, len); + if ((r->ipv6prefix = rad_cvt_ipv6prefix(data, len)) == NULL) { + log_Printf(LogERROR, "rad_cvt_ipv6prefix: %s\n", + "Malformed attribute in response"); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + return; + } inet_ntop(AF_INET6, &r->ipv6prefix[2], ipv6addr, sizeof(ipv6addr)); log_Printf(log_IsKept(LogRADIUS) ? LogRADIUS : LogPHASE, " IPv6 %s/%d\n", ipv6addr, r->ipv6prefix[1]); |
