diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-09-27 13:02:21 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-09-27 13:02:21 +0000 |
commit | a8fe2629a1b0272ef2d0f55f01c4b8bee35541c9 (patch) | |
tree | 491f3be523050a470c6bafa730ce65017592dfa3 /src/gns | |
parent | fa020943de61fe7177c9e65aca57b436305c6a14 (diff) | |
download | gnunet-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.c | 4 | ||||
-rw-r--r-- | src/gns/gnunet-service-gns_resolver.c | 2 |
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 | } |