From 6e894f02cf305ac0e86413e96f51b03571fdbebf Mon Sep 17 00:00:00 2001 From: Geoff Garside Date: Sat, 18 Jun 2011 18:59:07 +0100 Subject: [PATCH] Fix cluster.c inet_ntop use of sizeof(n->ip). Using sizeof with an array will only return expected results if the array is created in the scope of the function where sizeof is used. This commit changes the inet_ntop calls so that they use the fixed buffer value as defined in redis.h which is 16. --- src/cluster.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cluster.c b/src/cluster.c index 7531ab7c..e60d82a6 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -758,7 +758,7 @@ void nodeIp2String(char *buf, clusterLink *link) { if (getpeername(link->fd, (struct sockaddr*) &sa, &salen) == -1) redisPanic("getpeername() failed."); - inet_ntop(sa.sin_family,(void*)&(sa.sin_addr),buf,sizeof(link->node->ip)); + inet_ntop(sa.sin_family,(void*)&(sa.sin_addr),buf,16); } @@ -2084,7 +2084,7 @@ void clusterCommand(redisClient *c) { /* Finally add the node to the cluster with a random name, this * will get fixed in the first handshake (ping/pong). */ n = createClusterNode(NULL,REDIS_NODE_HANDSHAKE|REDIS_NODE_MEET); - inet_ntop(sa.sin_family,(void*)&(sa.sin_addr),n->ip,sizeof(n->ip)); + inet_ntop(sa.sin_family,(void*)&(sa.sin_addr),n->ip,16); n->port = port; clusterAddNode(n); addReply(c,shared.ok);