gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r34640 - gnunet/src/scalarproduct
Date: Tue, 16 Dec 2014 20:07:39 +0100

Author: grothoff
Date: 2014-12-16 20:07:39 +0100 (Tue, 16 Dec 2014)
New Revision: 34640

Modified:
   gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
Log:
-fix leak on error handling path

Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2014-12-16 
18:59:49 UTC (rev 34639)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct_bob.c 2014-12-16 
19:07:39 UTC (rev 34640)
@@ -770,7 +770,7 @@
                                         &r[i]))
     {
       GNUNET_break_op (0);
-      return GNUNET_SYSERR;
+      goto error_cleanup;
     }
   }
 
@@ -793,7 +793,7 @@
                                         &r_prime[i]))
     {
       GNUNET_break_op (0);
-      return GNUNET_SYSERR;
+      goto error_cleanup;
     }
   }
   gcry_mpi_release (tmp);
@@ -821,7 +821,6 @@
   session->r = r;
   session->r_prime = r_prime;
 
-  // release rand, b and a
   for (i = 0; i < count; i++)
     gcry_mpi_release (rand[i]);
   GNUNET_free (session->e_a);
@@ -830,6 +829,17 @@
   GNUNET_free (q);
   GNUNET_free (rand);
   return GNUNET_OK;
+
+ error_cleanup:
+  GNUNET_free (r);
+  GNUNET_free (r_prime);
+  gcry_mpi_release (tmp);
+  GNUNET_free (p);
+  GNUNET_free (q);
+  for (i = 0; i < count; i++)
+    gcry_mpi_release (rand[i]);
+  GNUNET_free (rand);
+  return GNUNET_SYSERR;
 }
 
 




reply via email to

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