diff options
author | Nathan S. Evans <evans@in.tum.de> | 2010-04-20 11:49:35 +0000 |
---|---|---|
committer | Nathan S. Evans <evans@in.tum.de> | 2010-04-20 11:49:35 +0000 |
commit | 7e5ada1667890ec568062179a5b11aa3d6c9054e (patch) | |
tree | 5e86be83d3d1116c3bbfac6af07ba516f39a861d /src/dht | |
parent | 07b4a99662666ee11fc1a3684faa3bb55cf8b66f (diff) | |
download | gnunet-7e5ada1667890ec568062179a5b11aa3d6c9054e.tar.gz gnunet-7e5ada1667890ec568062179a5b11aa3d6c9054e.zip |
memory leak fixes
Diffstat (limited to 'src/dht')
-rw-r--r-- | src/dht/dht_api.c | 9 | ||||
-rw-r--r-- | src/dht/test_dht_api.c | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/dht/dht_api.c b/src/dht/dht_api.c index fda836d69..c188e171f 100644 --- a/src/dht/dht_api.c +++ b/src/dht/dht_api.c | |||
@@ -365,7 +365,7 @@ finish (struct GNUNET_DHT_Handle *handle, int code) | |||
365 | GNUNET_SCHEDULER_REASON_PREREQ_DONE); | 365 | GNUNET_SCHEDULER_REASON_PREREQ_DONE); |
366 | } | 366 | } |
367 | 367 | ||
368 | if (pos->unique_id != 0) | 368 | if (pos->unique_id == 0) |
369 | GNUNET_free(pos->msg); | 369 | GNUNET_free(pos->msg); |
370 | GNUNET_free (pos); | 370 | GNUNET_free (pos); |
371 | handle->current = NULL; | 371 | handle->current = NULL; |
@@ -849,6 +849,9 @@ GNUNET_DHT_route_start (struct GNUNET_DHT_Handle *handle, | |||
849 | uint16_t msize; | 849 | uint16_t msize; |
850 | GNUNET_HashCode uid_key; | 850 | GNUNET_HashCode uid_key; |
851 | 851 | ||
852 | if ((handle->current != NULL) && (handle->retransmit_stage != DHT_RETRANSMITTING)) | ||
853 | return NULL; | ||
854 | |||
852 | if (sizeof (struct GNUNET_DHT_RouteMessage) + ntohs (enc->size) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) | 855 | if (sizeof (struct GNUNET_DHT_RouteMessage) + ntohs (enc->size) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) |
853 | { | 856 | { |
854 | GNUNET_break (0); | 857 | GNUNET_break (0); |
@@ -903,6 +906,7 @@ GNUNET_DHT_route_start (struct GNUNET_DHT_Handle *handle, | |||
903 | handle->retransmit_stage = DHT_RETRANSMITTING_MESSAGE_QUEUED; | 906 | handle->retransmit_stage = DHT_RETRANSMITTING_MESSAGE_QUEUED; |
904 | handle->retransmission_buffer = pending; | 907 | handle->retransmission_buffer = pending; |
905 | } | 908 | } |
909 | |||
906 | route_handle->message = message; | 910 | route_handle->message = message; |
907 | return route_handle; | 911 | return route_handle; |
908 | } | 912 | } |
@@ -1012,6 +1016,9 @@ GNUNET_DHT_route_stop (struct GNUNET_DHT_RouteHandle *route_handle, | |||
1012 | GNUNET_assert (GNUNET_CONTAINER_multihashmap_remove | 1016 | GNUNET_assert (GNUNET_CONTAINER_multihashmap_remove |
1013 | (route_handle->dht_handle->outstanding_requests, &uid_key, | 1017 | (route_handle->dht_handle->outstanding_requests, &uid_key, |
1014 | route_handle) == GNUNET_YES); | 1018 | route_handle) == GNUNET_YES); |
1019 | |||
1020 | GNUNET_free(route_handle->message); | ||
1021 | GNUNET_free(route_handle); | ||
1015 | } | 1022 | } |
1016 | 1023 | ||
1017 | 1024 | ||
diff --git a/src/dht/test_dht_api.c b/src/dht/test_dht_api.c index 10db5f45a..122dfff16 100644 --- a/src/dht/test_dht_api.c +++ b/src/dht/test_dht_api.c | |||
@@ -399,7 +399,7 @@ test_put (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
399 | GNUNET_DHT_put (peer->dht_handle, &hash, 42, data_size, data, | 399 | GNUNET_DHT_put (peer->dht_handle, &hash, 42, data_size, data, |
400 | GNUNET_TIME_relative_to_absolute (TOTAL_TIMEOUT), TOTAL_TIMEOUT, | 400 | GNUNET_TIME_relative_to_absolute (TOTAL_TIMEOUT), TOTAL_TIMEOUT, |
401 | &test_get, &p1); | 401 | &test_get, &p1); |
402 | 402 | GNUNET_free(data); | |
403 | } | 403 | } |
404 | 404 | ||
405 | static void | 405 | static void |