summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/or/geoip.c1
-rw-r--r--src/or/routerlist.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/or/geoip.c b/src/or/geoip.c
index eae927522a..6bb76ae4da 100644
--- a/src/or/geoip.c
+++ b/src/or/geoip.c
@@ -200,6 +200,7 @@ geoip_load_file(const char *filename, or_options_t *options)
sizeof(geoip_unresolved->countrycode));
smartlist_add(geoip_countries, geoip_unresolved);
country_idxplus1_by_lc_code = strmap_new();
+ strmap_set_lc(country_idxplus1_by_lc_code, "??", (void*)(1));
}
if (geoip_entries) {
SMARTLIST_FOREACH(geoip_entries, geoip_entry_t *, e, tor_free(e));
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 5f98abe01b..7be98bd1a5 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -5335,6 +5335,10 @@ routerset_contains(const routerset_t *set, const tor_addr_t *addr,
if (country < 0 && addr)
country = geoip_get_country_by_ip(tor_addr_to_ipv4h(addr));
+ /* XXXX can we safely move this into geoip_get_country_by_ip? */
+ if (country < 0)
+ country = 0;
+
if (country >= 0 && country < set->n_countries &&
bitarray_is_set(set->countries, country))
return 2;