r8576@Kushana: nickm | 2006-08-25 17:16:01 -0400

Fix bug 314: Instead of checking address_in_virtualrange, check addressmap_have_mapping().  This should be more accurate.  [Rename to addressmap_have_mapping() from addressmap_already_mapped().]


svn:r8226
This commit is contained in:
Nick Mathewson 2006-08-25 21:16:22 +00:00
parent 7739c5c49a
commit fd36eb0788
5 changed files with 8 additions and 8 deletions

View File

@ -24,12 +24,12 @@ Important bugfixes in 0.1.2.x:
until we've fetched correct ones. until we've fetched correct ones.
- If the client's clock is too far in the past, it will drop (or - If the client's clock is too far in the past, it will drop (or
just not try to get) descriptors, so it'll never build circuits. just not try to get) descriptors, so it'll never build circuits.
- bug #308: if Tor writes a bad datestamp to its datadir files, it o bug #308: if Tor writes a bad datestamp to its datadir files, it
will then refuse to start even if you fix your clock. will then refuse to start even if you fix your clock.
Items for 0.1.2.x: Items for 0.1.2.x:
o bug #280: getaddrinfo does not set hints o bug #280: getaddrinfo does not set hints
- bug #314: is the fix for this just to check not only o bug #314: is the fix for this just to check not only
address_is_in_virtual_range(req->address) but also to check whether address_is_in_virtual_range(req->address) but also to check whether
ent = strmap_get(addressmap, address) and ent->new_address is set? ent = strmap_get(addressmap, address) and ent->new_address is set?
- when we start, remove any entryguards that are listed in excludenodes. - when we start, remove any entryguards that are listed in excludenodes.

View File

@ -995,7 +995,7 @@ fetch_from_buf_socks(buf_t *buf, socks_request_t *req,
strlcpy(req->address,tmpbuf,sizeof(req->address)); strlcpy(req->address,tmpbuf,sizeof(req->address));
req->port = ntohs(*(uint16_t*)(buf->cur+8)); req->port = ntohs(*(uint16_t*)(buf->cur+8));
buf_remove_from_front(buf, 10); buf_remove_from_front(buf, 10);
if (!address_is_in_virtual_range(req->address) && if (!addressmap_have_mapping(req->address) &&
!have_warned_about_unsafe_socks) { !have_warned_about_unsafe_socks) {
log_warn(LD_APP, log_warn(LD_APP,
"Your application (using socks5 on port %d) is giving " "Your application (using socks5 on port %d) is giving "
@ -1091,7 +1091,7 @@ fetch_from_buf_socks(buf_t *buf, socks_request_t *req,
startaddr = NULL; startaddr = NULL;
if (socks4_prot != socks4a && if (socks4_prot != socks4a &&
!address_is_in_virtual_range(tmpbuf) && !addressmap_have_mapping(tmpbuf) &&
!have_warned_about_unsafe_socks) { !have_warned_about_unsafe_socks) {
log_warn(LD_APP, log_warn(LD_APP,
"Your application (using socks4 on port %d) is giving Tor " "Your application (using socks4 on port %d) is giving Tor "

View File

@ -1069,7 +1069,7 @@ consider_recording_trackhost(edge_connection_t *conn, origin_circuit_t *circ)
/* Search the addressmap for this conn's destination. */ /* Search the addressmap for this conn's destination. */
/* If he's not in the address map.. */ /* If he's not in the address map.. */
if (!options->TrackHostExits || if (!options->TrackHostExits ||
addressmap_already_mapped(conn->socks_request->address)) addressmap_have_mapping(conn->socks_request->address))
return; /* nothing to track, or already mapped */ return; /* nothing to track, or already mapped */
SMARTLIST_FOREACH(options->TrackHostExits, const char *, cp, { SMARTLIST_FOREACH(options->TrackHostExits, const char *, cp, {

View File

@ -645,9 +645,9 @@ addressmap_rewrite(char *address, size_t maxlen)
/** Return 1 if <b>address</b> is already registered, else return 0 */ /** Return 1 if <b>address</b> is already registered, else return 0 */
int int
addressmap_already_mapped(const char *address) addressmap_have_mapping(const char *address)
{ {
return strmap_get(addressmap, address) ? 1 : 0; return strmap_get_lc(addressmap, address) ? 1 : 0;
} }
/** Register a request to map <b>address</b> to <b>new_address</b>, /** Register a request to map <b>address</b> to <b>new_address</b>,

View File

@ -1913,7 +1913,7 @@ void addressmap_clear_configured(void);
void addressmap_clear_transient(void); void addressmap_clear_transient(void);
void addressmap_free_all(void); void addressmap_free_all(void);
void addressmap_rewrite(char *address, size_t maxlen); void addressmap_rewrite(char *address, size_t maxlen);
int addressmap_already_mapped(const char *address); int addressmap_have_mapping(const char *address);
void addressmap_register(const char *address, char *new_address, void addressmap_register(const char *address, char *new_address,
time_t expires); time_t expires);
int parse_virtual_addr_network(const char *val, int validate_only, int parse_virtual_addr_network(const char *val, int validate_only,