summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ip6tables.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ip6tables.c b/ip6tables.c
index 17bdb4e5..664b307b 100644
--- a/ip6tables.c
+++ b/ip6tables.c
@@ -578,10 +578,13 @@ addr_to_host(const struct in6_addr *addr)
static char *
mask_to_numeric(const struct in6_addr *addrp)
{
- static char buf[20];
+ static char buf[50+2];
int l = ipv6_prefix_length(addrp);
- if (l == -1)
- return addr_to_numeric(addrp);
+ if (l == -1) {
+ strcpy(buf, "/");
+ strcat(buf, addr_to_numeric(addrp));
+ return buf;
+ }
sprintf(buf, "/%d", l);
return buf;
}