[tor-commits] [tor/master] Improve bracket handling in tor_addr_parse()
nickm at torproject.org
nickm at torproject.org
Tue Oct 30 13:05:47 UTC 2018
commit 23ed863da4f66d9e07f578118f328b9f1898fe52
Author: rl1987 <rl1987 at sdf.lonestar.org>
Date: Fri Aug 31 18:55:36 2018 +0300
Improve bracket handling in tor_addr_parse()
* Actually check for second bracket
* Only attempt parsing IPv4 address when no brackets found
---
src/lib/net/address.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/lib/net/address.c b/src/lib/net/address.c
index 619fa13e9..14c086a5b 100644
--- a/src/lib/net/address.c
+++ b/src/lib/net/address.c
@@ -1187,14 +1187,19 @@ tor_addr_parse(tor_addr_t *addr, const char *src)
int result;
struct in_addr in_tmp;
struct in6_addr in6_tmp;
+ int brackets_detected = 0;
+
tor_assert(addr && src);
- if (src[0] == '[' && src[1])
+ if (src[0] == '[' && src[1] && src[strlen(src)-1] == ']') {
+ brackets_detected = 1;
src = tmp = tor_strndup(src+1, strlen(src)-2);
+ }
if (tor_inet_pton(AF_INET6, src, &in6_tmp) > 0) {
result = AF_INET6;
tor_addr_from_in6(addr, &in6_tmp);
- } else if (tor_inet_pton(AF_INET, src, &in_tmp) > 0) {
+ } else if (!brackets_detected &&
+ tor_inet_pton(AF_INET, src, &in_tmp) > 0) {
result = AF_INET;
tor_addr_from_in(addr, &in_tmp);
} else {
More information about the tor-commits
mailing list