- assert(server->address_info == NULL);
- assert(server->address_info_next == NULL);
- int errcode;
- char hostname[MEMCACHED_NI_MAXHOST];
- const char *addr;
- char *p;
-
- assert(server->hostname());
- // drop [] from address, commonly used for IPv6
- addr = server->hostname();
- if (*addr == '[') {
- strcpy(hostname, addr +1);
- p = strchr(hostname, ']');
- if (p) {
- *p = 0;
- addr = hostname;
- }
+ auto hostname = server->hostname();
+ if (*hostname == '[') {
+ auto closing_bracket = &hostname[strlen(hostname) - 1];
+ if (*closing_bracket == ']') {
+ auto host_len = closing_bracket - hostname - 1;
+ if (host_len < MEMCACHED_NI_MAXHOST) {
+ hostname = strncpy(str_host, hostname + 1, host_len);
+ }
+ }