aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-05-23 23:08:03 +0200
committerChristian Grothoff <christian@grothoff.org>2018-05-23 23:08:15 +0200
commit4b9c0d3a08c214719aa32d2cbd689c158634f12b (patch)
tree6ccdf18864ec3947814047cfc2cca105e1f88fbf /src
parent454935bd76a9106ad6eda4d5c3d0861d6e559777 (diff)
fix bug where we might fail the resolution of the same DHT heap node twice due to async cleanup
Diffstat (limited to 'src')
-rw-r--r--src/gns/gnunet-service-gns_resolver.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c
index 8593e281eb..d3c07e9977 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);
}