gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r10989 - gnunet/src/dht


From: gnunet
Subject: [GNUnet-SVN] r10989 - gnunet/src/dht
Date: Tue, 20 Apr 2010 13:49:35 +0200

Author: nevans
Date: 2010-04-20 13:49:35 +0200 (Tue, 20 Apr 2010)
New Revision: 10989

Modified:
   gnunet/src/dht/dht_api.c
   gnunet/src/dht/test_dht_api.c
Log:
memory leak fixes

Modified: gnunet/src/dht/dht_api.c
===================================================================
--- gnunet/src/dht/dht_api.c    2010-04-20 11:39:22 UTC (rev 10988)
+++ gnunet/src/dht/dht_api.c    2010-04-20 11:49:35 UTC (rev 10989)
@@ -365,7 +365,7 @@
                                            
GNUNET_SCHEDULER_REASON_PREREQ_DONE);
     }
 
-  if (pos->unique_id != 0)
+  if (pos->unique_id == 0)
     GNUNET_free(pos->msg);
   GNUNET_free (pos);
   handle->current = NULL;
@@ -849,6 +849,9 @@
   uint16_t msize;
   GNUNET_HashCode uid_key;
 
+  if ((handle->current != NULL) && (handle->retransmit_stage != 
DHT_RETRANSMITTING))
+    return NULL;
+
   if (sizeof (struct GNUNET_DHT_RouteMessage) + ntohs (enc->size) >= 
GNUNET_SERVER_MAX_MESSAGE_SIZE)
     {
       GNUNET_break (0);
@@ -903,6 +906,7 @@
     handle->retransmit_stage = DHT_RETRANSMITTING_MESSAGE_QUEUED;
     handle->retransmission_buffer = pending;
   }
+
   route_handle->message = message;
   return route_handle;
 }
@@ -1012,6 +1016,9 @@
   GNUNET_assert (GNUNET_CONTAINER_multihashmap_remove
                 (route_handle->dht_handle->outstanding_requests, &uid_key,
                  route_handle) == GNUNET_YES);
+
+  GNUNET_free(route_handle->message);
+  GNUNET_free(route_handle);
 }
 
 

Modified: gnunet/src/dht/test_dht_api.c
===================================================================
--- gnunet/src/dht/test_dht_api.c       2010-04-20 11:39:22 UTC (rev 10988)
+++ gnunet/src/dht/test_dht_api.c       2010-04-20 11:49:35 UTC (rev 10989)
@@ -399,7 +399,7 @@
   GNUNET_DHT_put (peer->dht_handle, &hash, 42, data_size, data,
                   GNUNET_TIME_relative_to_absolute (TOTAL_TIMEOUT), 
TOTAL_TIMEOUT,
                   &test_get, &p1);
-
+  GNUNET_free(data);
 }
 
 static void





reply via email to

[Prev in Thread] Current Thread [Next in Thread]