mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Prevent changes to other options from removing . from AutomapHostsSuffixes
This happened because we changed AutomapHostsSuffixes to replace "." with "", since a suffix of "" means "match everything." But our option handling code for CSV options likes to remove empty entries when it re-parses stuff. Instead, let "." remain ".", and treat it specially when we're checking for a match. Fixes bug 12509; bugfix on 0.2.0.1-alpha.
This commit is contained in:
parent
0872d8e3cf
commit
8ef6cdc39f
4
changes/bug12509
Normal file
4
changes/bug12509
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
o Minor bugfixes (automapping):
|
||||
- Prevent changes to other optoins from removing the wildcard value "."
|
||||
from "AutomapHostsSuffixes".
|
@ -226,6 +226,8 @@ addressmap_address_should_automap(const char *address,
|
||||
return 0;
|
||||
|
||||
SMARTLIST_FOREACH_BEGIN(suffix_list, const char *, suffix) {
|
||||
if (!strcmp(suffix, "."))
|
||||
return 1;
|
||||
if (!strcasecmpend(address, suffix))
|
||||
return 1;
|
||||
} SMARTLIST_FOREACH_END(suffix);
|
||||
|
@ -3398,15 +3398,6 @@ options_validate(or_options_t *old_options, or_options_t *options,
|
||||
AF_INET6, 1, msg)<0)
|
||||
return -1;
|
||||
|
||||
if (options->AutomapHostsSuffixes) {
|
||||
SMARTLIST_FOREACH(options->AutomapHostsSuffixes, char *, suf,
|
||||
{
|
||||
size_t len = strlen(suf);
|
||||
if (len && suf[len-1] == '.')
|
||||
suf[len-1] = '\0';
|
||||
});
|
||||
}
|
||||
|
||||
if (options->TestingTorNetwork &&
|
||||
!(options->DirAuthorities ||
|
||||
(options->AlternateDirAuthority &&
|
||||
|
@ -3646,8 +3646,9 @@ typedef struct {
|
||||
* hostname ending with one of the suffixes in
|
||||
* <b>AutomapHostsSuffixes</b>, map it to a
|
||||
* virtual address. */
|
||||
smartlist_t *AutomapHostsSuffixes; /**< List of suffixes for
|
||||
* <b>AutomapHostsOnResolve</b>. */
|
||||
/** List of suffixes for <b>AutomapHostsOnResolve</b>. The special value
|
||||
* "." means "match everything." */
|
||||
smartlist_t *AutomapHostsSuffixes;
|
||||
int RendPostPeriod; /**< How often do we post each rendezvous service
|
||||
* descriptor? Remember to publish them independently. */
|
||||
int KeepalivePeriod; /**< How often do we send padding cells to keep
|
||||
|
Loading…
Reference in New Issue
Block a user