Procházet zdrojové kódy

r8687@Kushana: nickm | 2006-08-30 19:33:28 -0400
Apply patch from Adam Langley: fix assert() in eventdns.c. [Fuzzing, apparently, is cool.]


svn:r8308

Nick Mathewson před 19 roky
rodič
revize
921bfdb40a
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 6 1
      src/or/eventdns.c

+ 6 - 1
src/or/eventdns.c

@@ -528,8 +528,13 @@ nameserver_prod_callback(int fd, short events, void *arg) {
 static void
 nameserver_probe_failed(struct nameserver *const ns) {
 	const struct timeval * timeout;
-	assert(ns->state == 0);
 	(void) evtimer_del(&ns->timeout_event);
+	if (ns->state == 1) {
+		// This can happen if the nameserver acts in a way which makes us mark
+		// it as bad and then starts sending good replies.
+		return;
+	}
+
 	timeout =
 	  &global_nameserver_timeouts[MIN(ns->failed_times,
 					  global_nameserver_timeouts_length - 1)];