aboutsummaryrefslogtreecommitdiff
path: root/src/or/eventdns.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-05-29 19:54:51 +0000
committerNick Mathewson <nickm@torproject.org>2007-05-29 19:54:51 +0000
commit1359871c1459a1de5a5e3bc55e752064b8ec4716 (patch)
tree6569ae98ab8d7dca447cfefaf8707e4d912bca36 /src/or/eventdns.c
parent3f9afa06250febe954c8bcebbea3a21c398e89a1 (diff)
downloadtor-1359871c1459a1de5a5e3bc55e752064b8ec4716.tar
tor-1359871c1459a1de5a5e3bc55e752064b8ec4716.tar.gz
r13070@catbus: nickm | 2007-05-29 15:53:21 -0400
Fix handling of resolves with very long or otherwise malformed addresses, and comment dns_resolve better, and stop making what should be a BUG warning into an assert(0). This fixes bug 427, which was introduced around 9900/9931/9932. Not a backport candidate: 0.1.2.x never had this bug. svn:r10399
Diffstat (limited to 'src/or/eventdns.c')
-rw-r--r--src/or/eventdns.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/or/eventdns.c b/src/or/eventdns.c
index a3bb3bf24..a53642521 100644
--- a/src/or/eventdns.c
+++ b/src/or/eventdns.c
@@ -2658,14 +2658,23 @@ resolv_conf_parse_line(char *const start, int flags) {
#define NEXT_TOKEN strtok_r(NULL, delims, &strtok_state)
char *const first_token = strtok_r(start, delims, &strtok_state);
- if (!first_token) return;
+ if (!first_token) {
+ log(EVDNS_LOG_WARN,"No token.");
+ return;
+ }
+
+
+ log(EVDNS_LOG_WARN,"Token is %s; flags is %d", first_token, flags);
if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {
const char *const nameserver = NEXT_TOKEN;
struct in_addr ina;
+ log(EVDNS_LOG_WARN,"Parsed nameserver %s", nameserver);
+
if (inet_aton(nameserver, &ina)) {
// address is valid
+ log(EVDNS_LOG_WARN,"Liked it.");
evdns_nameserver_add(ina.s_addr);
}
} else if (!strcmp(first_token, "domain") && (flags & DNS_OPTION_SEARCH)) {