tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 0e348720fc3a4db0e61fcb81673080ae71e80b4e
parent 1ec45bb54621208906ce260255086a8456a9646e
Author: Nick Mathewson <nickm@torproject.org>
Date:   Mon, 15 May 2017 11:25:52 -0400

Fix assertion to actually have a chance of failing

This assertion can only fail if we mess up some of our other code,
but let's try to get it right.

Closes 22244.

Diffstat:
Achanges/bug22244 | 6++++++
Msrc/or/dns.c | 5+++--
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/changes/bug22244 b/changes/bug22244 @@ -0,0 +1,6 @@ + o Minor bugfixes (exit-side DNS): + - Fix an untriggerable assertion that checked the output of a + libevent DNS error, so that the assertion actually behaves as + expected. Fixes bug 22244; bugfix on 0.2.0.20-rc. Found by Andrey + Karpov using PVS-Studio. + diff --git a/src/or/dns.c b/src/or/dns.c @@ -160,8 +160,9 @@ evdns_log_cb(int warn, const char *msg) } if (!strcmpstart(msg, "Nameserver ") && (cp=strstr(msg, " has failed: "))) { char *ns = tor_strndup(msg+11, cp-(msg+11)); - const char *err = strchr(cp, ':')+2; - tor_assert(err); + const char *colon = strchr(cp, ':'); + tor_assert(colon); + const char *err = colon+2; /* Don't warn about a single failed nameserver; we'll warn with 'all * nameservers have failed' if we're completely out of nameservers; * otherwise, the situation is tolerable. */