commit 33fcc0f61d1feb2fbdf3153c7c64780dcdce6767
parent 5b45d73293e4f1cb4b1b59e673f3c12c782c5bff
Author: Nick Mathewson <nickm@torproject.org>
Date: Mon, 5 Jun 2017 12:01:17 -0400
Merge branch 'maint-0.2.7-redux' into maint-0.2.8
Diffstat:
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/changes/bug22490 b/changes/bug22490
@@ -0,0 +1,3 @@
+ o Minor bugfixes (correctness):
+ - Avoid undefined behavior when parsing IPv6 entries from the geoip6
+ file. Fixes bug 22490; bugfix on 0.2.4.6-alpha.
diff --git a/src/or/geoip.c b/src/or/geoip.c
@@ -144,6 +144,7 @@ geoip_parse_entry(const char *line, sa_family_t family)
if (*line == '#')
return 0;
+ char buf[512];
if (family == AF_INET) {
unsigned int low, high;
if (tor_sscanf(line,"%u,%u,%2s", &low, &high, c) == 3 ||
@@ -154,7 +155,6 @@ geoip_parse_entry(const char *line, sa_family_t family)
goto fail;
country = c;
} else { /* AF_INET6 */
- char buf[512];
char *low_str, *high_str;
struct in6_addr low, high;
char *strtok_state;