Fix printing of odd ip6tables netmasks (Closes: #103)
diff --git a/ip6tables.c b/ip6tables.c
index 17bdb4e..664b307 100644
--- a/ip6tables.c
+++ b/ip6tables.c
@@ -578,10 +578,13 @@
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;
}