From 0661cf0cf71841c395c67d48e7f612c11f8bfd16 Mon Sep 17 00:00:00 2001 From: Geoff Garside Date: Sat, 18 Jun 2011 19:37:45 +0100 Subject: [PATCH] Expand ip char buffers which are too small for v6. Increase the size of character buffers being used to store printable IP addresses so that they can safely store IPv6 addresses. --- src/networking.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/networking.c b/src/networking.c index 1d157aec3..e58db607a 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1128,7 +1128,7 @@ void getClientsMaxBuffers(unsigned long *longest_output_list, /* Turn a Redis client into an sds string representing its state. */ sds getClientInfoString(redisClient *client) { - char ip[32], flags[16], events[3], *p; + char ip[REDIS_IP_STR_LEN], flags[16], events[3], *p; int port = 0; /* initialized to zero for the unix socket case. */ int emask; @@ -1210,7 +1210,8 @@ void clientCommand(redisClient *c) { } else if (!strcasecmp(c->argv[1]->ptr,"kill") && c->argc == 3) { listRewind(server.clients,&li); while ((ln = listNext(&li)) != NULL) { - char ip[32], addr[64]; + /* addr size 64 > INET6_ADDRSTRLEN + : + strlen("65535") */ + char ip[INET6_ADDRSTRLEN], addr[64]; int port; client = listNodeValue(ln);