[tor-commits] [tor/master] eventdns.c: survive broken resolv.conf files

nickm at torproject.org nickm at torproject.org
Wed Mar 5 17:17:38 UTC 2014


commit 24add404ac08df59d0b5d68c6762b869bee63bac
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Feb 12 15:11:31 2014 -0500

    eventdns.c: survive broken resolv.conf files
    
    If you had a resolv.conf file with a nameserver line containing no
    nameserver IP, we would crash.  That's not terrible, but it's not
    desirable.
    
    Fixes bug 8788; bugfix on 0.1.1.23.  Libevent already has this fix.
---
 changes/bug8788    |    3 +++
 src/ext/eventdns.c |    3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/changes/bug8788 b/changes/bug8788
new file mode 100644
index 0000000..26fb5bc
--- /dev/null
+++ b/changes/bug8788
@@ -0,0 +1,3 @@
+  o Minor bugfixes:
+    - Avoid crashing on a malformed resolv.conf file when running a
+      server using Libevent 1. Fixes bug 8788; bugfix on 0.1.1.23.
diff --git a/src/ext/eventdns.c b/src/ext/eventdns.c
index 8b934c4..5ac9c12 100644
--- a/src/ext/eventdns.c
+++ b/src/ext/eventdns.c
@@ -3014,7 +3014,8 @@ resolv_conf_parse_line(char *const start, int flags) {
 
 	if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {
 		const char *const nameserver = NEXT_TOKEN;
-		evdns_nameserver_ip_add(nameserver);
+		if (nameserver)
+			evdns_nameserver_ip_add(nameserver);
 	} else if (!strcmp(first_token, "domain") && (flags & DNS_OPTION_SEARCH)) {
 		const char *const domain = NEXT_TOKEN;
 		if (domain) {





More information about the tor-commits mailing list