gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r34509 - gnunet/src/scalarproduct


From: gnunet
Subject: [GNUnet-SVN] r34509 - gnunet/src/scalarproduct
Date: Mon, 8 Dec 2014 01:23:43 +0100

Author: grothoff
Date: 2014-12-08 01:23:43 +0100 (Mon, 08 Dec 2014)
New Revision: 34509

Modified:
   gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c
   gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
   gnunet/src/scalarproduct/test_scalarproduct.conf
Log:
-fix leaks

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c       
2014-12-08 00:17:15 UTC (rev 34508)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct_alice.c       
2014-12-08 00:23:43 UTC (rev 34509)
@@ -224,9 +224,9 @@
  * @return #GNUNET_OK (continue to iterate)
  */
 static int
-free_element (void *cls,
-              const struct GNUNET_HashCode *key,
-              void *value)
+free_element_cb (void *cls,
+                 const struct GNUNET_HashCode *key,
+                 void *value)
 {
   struct GNUNET_SCALARPRODUCT_Element *e = value;
 
@@ -273,7 +273,7 @@
   if (NULL != s->intersected_elements)
   {
     GNUNET_CONTAINER_multihashmap_iterate (s->intersected_elements,
-                                           &free_element,
+                                           &free_element_cb,
                                            s);
     GNUNET_CONTAINER_multihashmap_destroy (s->intersected_elements);
     s->intersected_elements = NULL;

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2014-12-08 
00:17:15 UTC (rev 34508)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2014-12-08 
00:23:43 UTC (rev 34509)
@@ -308,6 +308,25 @@
 
 
 /**
+ * Callback used to free the elements in the map.
+ *
+ * @param cls NULL
+ * @param key key of the element
+ * @param value the value to free
+ */
+static int
+free_element_cb (void *cls,
+                 const struct GNUNET_HashCode *key,
+                 void *value)
+{
+  struct GNUNET_SCALARPRODUCT_Element *element = value;
+
+  GNUNET_free (element);
+  return GNUNET_OK;
+}
+
+
+/**
  * Destroy session state, we are done with it.
  *
  * @param session the session to free elements from
@@ -351,7 +370,9 @@
                                                        s));
   if (NULL != s->intersected_elements)
   {
-    /* FIXME: free elements */
+    GNUNET_CONTAINER_multihashmap_iterate (s->intersected_elements,
+                                           &free_element_cb,
+                                           NULL);
     GNUNET_CONTAINER_multihashmap_destroy (s->intersected_elements);
     s->intersected_elements = NULL;
   }
@@ -758,6 +779,7 @@
                                                         &a[q[i]],
                                                         &r_prime[i]));
   }
+  gcry_mpi_release (tmp);
 
   // Calculate S' =  E(SUM( r_i^2 ))
   tmp = compute_square_sum (rand, count);
@@ -765,6 +787,7 @@
                                   tmp,
                                   1,
                                   &session->s_prime);
+  gcry_mpi_release (tmp);
 
   // Calculate S = E(SUM( (r_i + b_i)^2 ))
   for (i = 0; i < count; i++)
@@ -774,6 +797,7 @@
                                   tmp,
                                   1,
                                   &session->s);
+  gcry_mpi_release (tmp);
 
   session->r = r;
   session->r_prime = r_prime;
@@ -781,7 +805,6 @@
   // release rand, b and a
   for (i = 0; i < count; i++)
     gcry_mpi_release (rand[i]);
-  gcry_mpi_release (tmp);
   GNUNET_free (session->e_a);
   session->e_a = NULL;
   GNUNET_free (p);

Modified: gnunet/src/scalarproduct/test_scalarproduct.conf
===================================================================
--- gnunet/src/scalarproduct/test_scalarproduct.conf    2014-12-08 00:17:15 UTC 
(rev 34508)
+++ gnunet/src/scalarproduct/test_scalarproduct.conf    2014-12-08 00:23:43 UTC 
(rev 34509)
@@ -12,7 +12,7 @@
 WORKBITS=0
 
 [scalarproduct-bob]
-#PREFIX = valgrind
+PREFIX = valgrind --leak-check=yes
 
 [scalarproduct-alice]
-#PREFIX = valgrind
\ No newline at end of file
+PREFIX = valgrind --leak-check=yes




reply via email to

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