Fix assertion in addressmap_clear_excluded_trackexithosts

Fixes bug 3923; bugfix on 0.2.2.25-alpha; bugfix from 'laruldan' on trac.
This commit is contained in:
Nick Mathewson 2011-09-06 20:26:20 -04:00
parent e0dae64449
commit 2bf0e7479b
2 changed files with 9 additions and 6 deletions

5
changes/bug3923 Normal file
View File

@ -0,0 +1,5 @@
o Major bugfies:
- Avoid an assertion failure when reloading a configuration with
TrackExitHosts changes. Found and fixed by 'laruldan'. Fixes
bug 3923; bugfix on 0.2.2.25-alpha.

View File

@ -842,12 +842,10 @@ addressmap_clear_excluded_trackexithosts(or_options_t *options)
if (len < 6)
continue; /* malformed. */
dot = target + len - 6; /* dot now points to just before .exit */
dot = strrchr(dot, '.'); /* dot now points to the . before .exit or NULL */
if (!dot) {
nodename = tor_strndup(target, len-5);
} else {
nodename = tor_strndup(dot+1, strlen(dot+1)-5);
}
while(dot > target && *dot != '.')
dot--;
if (*dot == '.') dot++;
nodename = tor_strndup(dot, len-5-(dot-target));;
ri = router_get_by_nickname(nodename, 0);
tor_free(nodename);
if (!ri ||