summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/ipsec.c
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2006-12-12 12:17:58 +0000
committerbz <bz@FreeBSD.org>2006-12-12 12:17:58 +0000
commit297206ec2ac5b34686aaf531476b1b737df9bbd7 (patch)
tree262eb78fb028423e6796d76401691a45b39b496a /sys/netinet6/ipsec.c
parentdc3e4a0741ba505defdc796a954461de7aa856e3 (diff)
downloadFreeBSD-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.c12
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)
OpenPOWER on IntegriCloud