|
@@ -1189,13 +1189,13 @@ tor_addr_parse(tor_addr_t *addr, const char *src)
|
|
struct in6_addr in6_tmp;
|
|
struct in6_addr in6_tmp;
|
|
int brackets_detected = 0;
|
|
int brackets_detected = 0;
|
|
|
|
|
|
|
|
+ tor_assert(addr && src);
|
|
|
|
+
|
|
size_t len = strlen(src);
|
|
size_t len = strlen(src);
|
|
|
|
|
|
- tor_assert(addr && src);
|
|
|
|
- if (src[0] == '[' && src[1] && src[len - 1] == ']') {
|
|
|
|
|
|
+ if (len && src[0] == '[' && src[len - 1] == ']') {
|
|
brackets_detected = 1;
|
|
brackets_detected = 1;
|
|
src = tmp = tor_strndup(src+1, strlen(src)-2);
|
|
src = tmp = tor_strndup(src+1, strlen(src)-2);
|
|
- len -= 2;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (tor_inet_pton(AF_INET6, src, &in6_tmp) > 0) {
|
|
if (tor_inet_pton(AF_INET6, src, &in6_tmp) > 0) {
|