From 4b9c0d3a08c214719aa32d2cbd689c158634f12b Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 23 May 2018 23:08:03 +0200 Subject: [PATCH] fix bug where we might fail the resolution of the same DHT heap node twice due to async cleanup --- src/gns/gnunet-service-gns_resolver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index 8593e281e..d3c07e997 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c @@ -2400,7 +2400,8 @@ start_dht_request (struct GNS_ResolverHandle *rh, if (GNUNET_CONTAINER_heap_get_size (dht_lookup_heap) > max_allowed_background_queries) { /* fail longest-standing DHT request */ - rx = GNUNET_CONTAINER_heap_peek (dht_lookup_heap); + rx = GNUNET_CONTAINER_heap_remove_root (dht_lookup_heap); + rx->dht_heap_node = NULL; GNUNET_assert (NULL != rx); fail_resolution (rx); } -- 2.25.1