Преглед изворни кода

* Fix crash for query not being deallocated correctly after failed blocking-dns lookup

Bryan Drewery пре 16 година
родитељ
комит
2fddf7506a
1 измењених фајлова са 11 додато и 1 уклоњено
  1. 11 1
      src/adns.c

+ 11 - 1
src/adns.c

@@ -579,8 +579,18 @@ read_more:
 		}
 	}
 
-	if (q)
+	if (q) {
+		dns_query_t *prev = NULL, *cur = NULL;
+		for (cur = query_head; cur; cur = cur->next) {
+			if (cur->id == q->id) break;
+			prev = cur;
+		}
+		if (cur) {
+			if (prev) prev->next = cur->next;
+			else query_head = cur->next;
+		}
 		free_query(q);
+	}
 
 	// Disable blocking on the dns socket.
 	socket_set_nonblock(dcc[dns_idx].sock, 1);