[ https://issues.apache.org/jira/browse/ZOOKEEPER-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14055085#comment-14055085 ]
Erik Anderson commented on ZOOKEEPER-1677: ------------------------------------------ The zookeeper client was offline for me until I found this patch, without it the client was stuck in a continuous reconfigure cycle without ever connecting to the server. A possible alternative (architecture-independent) approach is simply to zero out the buffer inside of addrvec_append_addrinfo. This is the only entrypoint into the vector, so one could simply memcmp the entire thing. In any case, neither INET_ADDRSTRLEN or INET6_ADDRSTRLEN are in used by the client after this point (and are rather well documented). Can we drop the #defines as part of this patch? > Misuse of INET_ADDRSTRLEN > ------------------------- > > Key: ZOOKEEPER-1677 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1677 > Project: ZooKeeper > Issue Type: Bug > Affects Versions: 3.5.0 > Reporter: Shevek > Assignee: Marshall McMullen > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1677.patch, ZOOKEEPER-1677.patch, > ZOOKEEPER-1677.patch, ZOOKEEPER-1677.patch, ZOOKEEPER-1677.patch, > ZOOKEEPER-1677.patch, ZOOKEEPER-1677.patch, ZOOKEEPER-1677.patch, > ZOOKEEPER-1677.patch > > > ZOOKEEPER-1355. Add zk.updateServerList(newServerList) (Alex Shraer, > Marshall McMullen via fpj) > > > > git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1410731 > 13f79535-47bb-0310-9956-ffa450edef68 > +int addrvec_contains(const addrvec_t *avec, const struct sockaddr_storage > *addr) > +{ > + if (!avec || !addr) > + { > + return 0; > + } > + > + int i = 0; > + for (i = 0; i < avec->count; i++) > + { > + if(memcmp(&avec->data[i], addr, INET_ADDRSTRLEN) == 0) > + return 1; > + } > + > + return 0; > +} > Pretty sure that should be sizeof(sockaddr_storage). INET_ADDRSTRLEN is the > size of the character buffer which needs to be allocated for the return value > of inet_ntop, which seems to be totally wrong. -- This message was sent by Atlassian JIRA (v6.2#6252)