chiark / gitweb /
ipv6: More buffers in iaddr_to_string
[secnet.git] / util.c
diff --git a/util.c b/util.c
index f8ebf25a3e500b35a55f8d5f9ffd0a06efaddcd7..cbb4e2a00d83b8fbb01d13d0f3df80ed66570cc2 100644 (file)
--- a/util.c
+++ b/util.c
@@ -478,12 +478,16 @@ extern void slilog_part(struct log_if *lf, int priority, const char *message, ..
     va_end(ap);
 }
 
+#define IADDR_NBUFS_SHIFT 3
+#define IADDR_NBUFS (1 << IADDR_NBUFS_SHIFT)
+
 const char *iaddr_to_string(const union iaddr *ia)
 {
-    static char bufs[2][100];
+    static char bufs[IADDR_NBUFS][100];
     static int b;
 
-    b ^= 1;
+    b++;
+    b &= IADDR_NBUFS-1;
 
     assert(ia->sa.sa_family == AF_INET);