diff options
author | Nick Mathewson <nickm@torproject.org> | 2010-02-03 15:59:15 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-02-03 15:59:15 -0500 |
commit | 7d5d4f9f0385a8594bf363bee2392e8b055499fb (patch) | |
tree | 50a86a76d268335ef17f72fcc6fb1211f6f35e9f | |
parent | ba0c9e5d0309b6c1f7e55757ef41262d9cde3b14 (diff) | |
download | tor-7d5d4f9f0385a8594bf363bee2392e8b055499fb.tar.gz tor-7d5d4f9f0385a8594bf363bee2392e8b055499fb.zip |
When we've disabled .exit hostnames, actually reject them.
Previously we were treating them as decent hostnames and sending them
to the exit, which is completely wrong.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/or/connection_edge.c | 10 |
2 files changed, 9 insertions, 4 deletions
@@ -12,6 +12,9 @@ Changes in version 0.2.2.9-alpha - 2010-??-?? when it updates its libraries in a security patch. - Fix static compilation by listing the openssl libraries in the right order. Fixes bug 1237. + - Actually reject .exit hostnames when we're supposed to be rejecting + them; do not pass them on to the exit server. Bugfix on 0.2.2.7-alpha; + found and diagnosed by Scott Bennett and Downie on or-talk. o Code simplifications and refactoring: - Generate our manpage and HTML documentation using Asciidoc. This diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index d7e8394614..8447853fc1 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -2935,10 +2935,12 @@ parse_extended_hostname(char *address, int allowdotexit) if (allowdotexit) { *s = 0; /* NUL-terminate it */ return EXIT_HOSTNAME; /* .exit */ - } /* else */ - log_warn(LD_APP, "The \".exit\" notation is disabled in Tor due to " - "security risks. Set AllowDotExit in your torrc to enable it."); - /* FFFF send a controller event too to notify Vidalia users */ + } else { + log_warn(LD_APP, "The \".exit\" notation is disabled in Tor due to " + "security risks. Set AllowDotExit in your torrc to enable it."); + /* FFFF send a controller event too to notify Vidalia users */ + return BAD_HOSTNAME; + } } if (strcmp(s+1,"onion")) return NORMAL_HOSTNAME; /* neither .exit nor .onion, thus normal */ |