diff --git a/ChangeLog b/ChangeLog index 5aaeee66b5..453e1865a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ Changes in version 0.2.1.12-alpha - 2009-01-?? on 0.2.1.10-alpha; reported by Matt Edman. - Fix a compile warning on OSX Panther. Fixes bug 913; bugfix against 0.2.1.11-alpha. + - Fix a bug in address parsing that was preventing bridges or hidden + service targets from being at IPv6 addresses. Changes in version 0.2.1.11-alpha - 2009-01-20 diff --git a/src/common/address.c b/src/common/address.c index 0e92b71f91..59412363ab 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -962,9 +962,9 @@ tor_addr_from_str(tor_addr_t *addr, const char *src) return result; } -/** Parse an address or address-port combination from s, and put the - result in addr_out and (optionally) port_out. Return 0 on - success, negative on failure. */ +/** Parse an address or address-port combination from s, resolve the + * address as needed, and put the result in addr_out and (optionally) + * port_out. Return 0 on success, negative on failure. */ int tor_addr_port_parse(const char *s, tor_addr_t *addr_out, uint16_t *port_out) { @@ -982,7 +982,7 @@ tor_addr_port_parse(const char *s, tor_addr_t *addr_out, uint16_t *port_out) port = strstr(s, "]"); if (!port) goto err; - tmp = tor_strndup(s+1, port-s); + tmp = tor_strndup(s+1, port-(s+1)); port = port+1; if (*port == ':') port++;