aboutsummaryrefslogtreecommitdiff
path: root/src/dht
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-04-20 11:49:35 +0000
committerNathan S. Evans <evans@in.tum.de>2010-04-20 11:49:35 +0000
commit7e5ada1667890ec568062179a5b11aa3d6c9054e (patch)
tree5e86be83d3d1116c3bbfac6af07ba516f39a861d /src/dht
parent07b4a99662666ee11fc1a3684faa3bb55cf8b66f (diff)
downloadgnunet-7e5ada1667890ec568062179a5b11aa3d6c9054e.tar.gz
gnunet-7e5ada1667890ec568062179a5b11aa3d6c9054e.zip
memory leak fixes
Diffstat (limited to 'src/dht')
-rw-r--r--src/dht/dht_api.c9
-rw-r--r--src/dht/test_dht_api.c2
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
405static void 405static void