diff options
author | bz <bz@FreeBSD.org> | 2006-12-12 12:17:58 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2006-12-12 12:17:58 +0000 |
commit | 297206ec2ac5b34686aaf531476b1b737df9bbd7 (patch) | |
tree | 262eb78fb028423e6796d76401691a45b39b496a /sys/netinet6/ipsec.c | |
parent | dc3e4a0741ba505defdc796a954461de7aa856e3 (diff) | |
download | FreeBSD-src-297206ec2ac5b34686aaf531476b1b737df9bbd7.zip FreeBSD-src-297206ec2ac5b34686aaf531476b1b737df9bbd7.tar.gz |
MFp4: 92972, 98913 + one more change
In ip6_sprintf no longer use and return one of eight static buffers
for printing/logging ipv6 addresses.
The caller now has to hand in a sufficiently large buffer as first
argument.
Diffstat (limited to 'sys/netinet6/ipsec.c')
-rw-r--r-- | sys/netinet6/ipsec.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/netinet6/ipsec.c b/sys/netinet6/ipsec.c index a0b356b..3dcadc0 100644 --- a/sys/netinet6/ipsec.c +++ b/sys/netinet6/ipsec.c @@ -2494,6 +2494,7 @@ ipsec6_logpacketstr(ip6, spi) u_int32_t spi; { static char buf[256]; + char ip6buf[INET6_ADDRSTRLEN]; char *p; p = buf; @@ -2501,11 +2502,11 @@ ipsec6_logpacketstr(ip6, spi) while (*p) p++; snprintf(p, sizeof(buf) - (p - buf), "src=%s", - ip6_sprintf(&ip6->ip6_src)); + ip6_sprintf(ip6buf, &ip6->ip6_src)); while (*p) p++; snprintf(p, sizeof(buf) - (p - buf), " dst=%s", - ip6_sprintf(&ip6->ip6_dst)); + ip6_sprintf(ip6buf, &ip6->ip6_dst)); while (*p) p++; snprintf(p, sizeof(buf) - (p - buf), ")"); @@ -2541,14 +2542,17 @@ ipsec_logsastr(sav) } #ifdef INET6 else if (((struct sockaddr *)&saidx->src)->sa_family == AF_INET6) { + char ip6buf[INET6_ADDRSTRLEN]; snprintf(p, sizeof(buf) - (p - buf), "src=%s", - ip6_sprintf(&((struct sockaddr_in6 *)&saidx->src)->sin6_addr)); + ip6_sprintf(ip6buf, + &((struct sockaddr_in6 *)&saidx->src)->sin6_addr)); while (*p) p++; snprintf(p, sizeof(buf) - (p - buf), " dst=%s", - ip6_sprintf(&((struct sockaddr_in6 *)&saidx->dst)->sin6_addr)); + ip6_sprintf(ip6buf, + &((struct sockaddr_in6 *)&saidx->dst)->sin6_addr)); } #endif while (*p) |