From 25f35d003e2456be74bed0edf35743107c48ce32 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 23 May 2018 23:37:00 +0200 Subject: stop DNS lookup immediately instead of async to avoid use-after free if we get BOTH an IPv4 and IPv6 response --- src/gns/gnunet-service-gns_resolver.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/gns') diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index d3c07e997..8b20f2ae3 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c @@ -971,6 +971,8 @@ dns_result_parser (void *cls, &handle_dns_result, rh); GNUNET_DNSPARSER_free_packet (p); + GNUNET_DNSSTUB_resolve_cancel (rh->dns_request); + rh->dns_request = NULL; return; } @@ -1110,6 +1112,8 @@ dns_result_parser (void *cls, rh->proc (rh->proc_cls, rd_count - skip, rd); + GNUNET_DNSSTUB_resolve_cancel (rh->dns_request); + rh->dns_request = NULL; } GNUNET_DNSPARSER_free_packet (p); if (NULL != rh->task_id) -- cgit v1.2.3