Sophie

Sophie

distrib > Mageia > 8 > aarch64 > by-pkgid > 970b96a933db84df4ac5ae97d74b91a3 > files > 33

bind-9.11.37-1.mga8.src.rpm

diff -Naurp bind-9.9.5/bin/dig/dighost.c bind-9.9.5.oden/bin/dig/dighost.c
--- bind-9.9.5/bin/dig/dighost.c	2014-02-02 14:01:26.336253805 +0100
+++ bind-9.9.5.oden/bin/dig/dighost.c	2014-02-02 14:01:35.990254345 +0100
@@ -1501,6 +1501,12 @@ clear_query(dig_query_t *query) {
 
 	debug("clear_query(%p)", query);
 
+	if (query->waiting_senddone) {
+		debug("send_done not yet called");
+		query->pending_free = true;
+		return;
+	}
+
 	if (query->timer != NULL)
 		isc_timer_detach(&query->timer);
 	lookup = query->lookup;
@@ -1526,10 +1532,7 @@ clear_query(dig_query_t *query) {
 	isc_mempool_put(commctx, query->recvspace);
 	isc_buffer_invalidate(&query->recvbuf);
 	isc_buffer_invalidate(&query->lengthbuf);
-	if (query->waiting_senddone)
-		query->pending_free = true;
-	else
-		isc_mem_free(mctx, query);
+	isc_mem_free(mctx, query);
 }
 
 /*%
@@ -2447,9 +2450,9 @@ send_done(isc_task_t *_task, isc_event_t
 	isc_event_free(&event);
 
 	if (query->pending_free)
-		isc_mem_free(mctx, query);
+		clear_query(query);
 
-	check_if_done();
+	check_next_lookup(l);
 	UNLOCK_LOOKUP;
 }