aboutsummaryrefslogtreecommitdiff
path: root/src/gns
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-09-27 13:02:21 +0000
committerChristian Grothoff <christian@grothoff.org>2012-09-27 13:02:21 +0000
commita8fe2629a1b0272ef2d0f55f01c4b8bee35541c9 (patch)
tree491f3be523050a470c6bafa730ce65017592dfa3 /src/gns
parentfa020943de61fe7177c9e65aca57b436305c6a14 (diff)
downloadgnunet-a8fe2629a1b0272ef2d0f55f01c4b8bee35541c9.tar.gz
gnunet-a8fe2629a1b0272ef2d0f55f01c4b8bee35541c9.zip
-use new cancel API, fix use after free
Diffstat (limited to 'src/gns')
-rw-r--r--src/gns/gnunet-dns2gns.c4
-rw-r--r--src/gns/gnunet-service-gns_resolver.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c
index de3ede6e2..67f7e4ac1 100644
--- a/src/gns/gnunet-dns2gns.c
+++ b/src/gns/gnunet-dns2gns.c
@@ -217,6 +217,8 @@ do_timeout (void *cls,
217 GNUNET_DNSPARSER_free_packet (request->packet); 217 GNUNET_DNSPARSER_free_packet (request->packet);
218 if (NULL != request->lookup) 218 if (NULL != request->lookup)
219 GNUNET_GNS_cancel_lookup_request (request->lookup); 219 GNUNET_GNS_cancel_lookup_request (request->lookup);
220 if (NULL != request->dns_lookup)
221 GNUNET_DNSSTUB_resolve_cancel (request->dns_lookup);
220 GNUNET_free (request); 222 GNUNET_free (request);
221} 223}
222 224
@@ -237,10 +239,12 @@ dns_result_processor (void *cls,
237 size_t r) 239 size_t r)
238{ 240{
239 struct Request *request = cls; 241 struct Request *request = cls;
242
240 request->packet = GNUNET_DNSPARSER_parse ((char*)dns, r); 243 request->packet = GNUNET_DNSPARSER_parse ((char*)dns, r);
241 send_response (request); 244 send_response (request);
242} 245}
243 246
247
244/** 248/**
245 * Iterator called on obtained result for a GNS 249 * Iterator called on obtained result for a GNS
246 * lookup 250 * lookup
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c
index c6538aba0..11ea5a993 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -4186,9 +4186,9 @@ gns_resolver_shorten_name (struct GNUNET_CRYPTO_ShortHashCode *zone,
4186 else 4186 else
4187 { 4187 {
4188 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Unknown TLD in %s\n", name); 4188 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Unknown TLD in %s\n", name);
4189 GNUNET_CONTAINER_DLL_remove (nsh_head, nsh_tail, rh);
4189 GNUNET_free (rh); 4190 GNUNET_free (rh);
4190 GNUNET_free (nsh); 4191 GNUNET_free (nsh);
4191 GNUNET_CONTAINER_DLL_remove (nsh_head, nsh_tail, rh);
4192 proc (proc_cls, name); 4192 proc (proc_cls, name);
4193 return; 4193 return;
4194 } 4194 }