[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30054 - gnunet/src/scalarproduct
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30054 - gnunet/src/scalarproduct |
Date: |
Wed, 9 Oct 2013 16:08:13 +0200 |
Author: cfuchs
Date: 2013-10-09 16:08:13 +0200 (Wed, 09 Oct 2013)
New Revision: 30054
Modified:
gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
Log:
extended cleanup function to take care of new variables in session structure
better cleanup for multipart handling
Modified: gnunet/src/scalarproduct/gnunet-service-scalarproduct.c
===================================================================
--- gnunet/src/scalarproduct/gnunet-service-scalarproduct.c 2013-10-09
13:53:08 UTC (rev 30053)
+++ gnunet/src/scalarproduct/gnunet-service-scalarproduct.c 2013-10-09
14:08:13 UTC (rev 30054)
@@ -697,12 +697,26 @@
{
unsigned int i;
- if (session->a) {
+ if (session->a){
for (i = 0; i < session->used; i++)
- gcry_mpi_release (session->a[i]);
-
- GNUNET_free (session->a);
+ if (session->a[i]) gcry_mpi_release (session->a[i]);
+ GNUNET_free_non_null (session->a);
}
+ GNUNET_free_non_null (session->mask);
+ if (session->r){
+ for (i = 0; i < session->used; i++)
+ if (session->r[i]) gcry_mpi_release (session->r[i]);
+ GNUNET_free_non_null(session->r);
+ }
+ if (session->r_prime){
+ for (i = 0; i < session->used; i++)
+ if (session->r_prime[i]) gcry_mpi_release (session->r_prime[i]);
+ GNUNET_free_non_null(session->r_prime);
+ }
+ if (session->s)
+ gcry_mpi_release (session->s);
+ if (session->s_prime)
+ gcry_mpi_release (session->s_prime);
if (session->product)
gcry_mpi_release (session->product);
@@ -1978,20 +1992,14 @@
return GNUNET_OK;
except:
- for (i = 0; i < session->used; i++)
- if (session->a[i])
- gcry_mpi_release (session->a[i]);
- gcry_sexp_release (session->remote_pubkey);
- session->remote_pubkey = NULL;
- GNUNET_free (session->a);
- session->a = NULL;
- free_session (session);
// and notify our client-session that we could not complete the session
+ GNUNET_CONTAINER_DLL_remove (from_service_head, from_service_tail, session);
if (session->response)
// we just found the responder session in this queue
session->response->client_notification_task =
GNUNET_SCHEDULER_add_now (&prepare_client_end_notification,
session->response);
+ free_session (session);
return GNUNET_SYSERR;
}
@@ -2027,8 +2035,7 @@
session = (struct ServiceSession *) * tunnel_ctx;
if (WAITING_FOR_SERVICE_REQUEST != session->state) {
- GNUNET_break_op (0);
- goto except;
+ goto invalid_msg;
}
// Check if message was sent by me, which would be bad!
if (!memcmp (&session->peer, &me, sizeof (struct GNUNET_PeerIdentity))) {
@@ -2116,7 +2123,7 @@
if (ret) {
GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _ ("Could not translate E[a%d]
to MPI!\n%s/%s\n"),
i, gcry_strsource (ret), gcry_strerror (ret));
- goto except;
+ goto invalid_msg;
}
}
GNUNET_CONTAINER_DLL_insert (from_service_head, from_service_tail,
session);
@@ -2129,7 +2136,7 @@
if (GNUNET_OK != compute_service_response (session,
session->response)) {
//something went wrong, remove it again...
GNUNET_CONTAINER_DLL_remove (from_service_head, from_service_tail,
session);
- goto except;
+ goto invalid_msg;
}
}
else
@@ -2140,21 +2147,15 @@
}
}
return GNUNET_OK;
-except:
- for (i = 0; i < session->used; i++)
- if (session->a[i])
- gcry_mpi_release (session->a[i]);
- gcry_sexp_release (session->remote_pubkey);
- session->remote_pubkey = NULL;
- GNUNET_free (session->a);
- session->a = NULL;
- free_session (session);
+invalid_msg:
+ GNUNET_break_op (0);
// and notify our client-session that we could not complete the session
if (session->response)
// we just found the responder session in this queue
session->response->client_notification_task =
GNUNET_SCHEDULER_add_now (&prepare_client_end_notification,
session->response);
+ free_session (session);
return GNUNET_SYSERR;
}
@@ -2230,14 +2231,23 @@
invalid_msg:
GNUNET_break_op (0);
- gcry_mpi_release (session->s);
- gcry_mpi_release (session->s_prime);
- for (i = 0; session->r && i < session->used; i++){
- if (session->r[i]) gcry_mpi_release (session->r[i]);
- if (session->r_prime[i]) gcry_mpi_release (session->r_prime[i]);
- }
+ if (session->s)
+ gcry_mpi_release (session->s);
+ if (session->s_prime)
+ gcry_mpi_release (session->s_prime);
+ if (session->r)
+ for (i = 0; session->r && i < session->used; i++)
+ if (session->r[i]) gcry_mpi_release (session->r[i]);
+ if (session->r_prime)
+ for (i = 0; session->r_prime && i < session->used; i++)
+ if (session->r_prime[i]) gcry_mpi_release (session->r_prime[i]);
+ if (session->a)
+ for (i = 0; session->a && i < session->used; i++)
+ if (session->a[i]) gcry_mpi_release (session->a[i]);
GNUNET_free_non_null (session->r);
GNUNET_free_non_null (session->r_prime);
+ GNUNET_free_non_null (session->a);
+ session->a = NULL;
session->s = NULL;
session->s_prime = NULL;
session->r = NULL;
@@ -2345,12 +2355,19 @@
gcry_mpi_release (session->s);
if (session->s_prime)
gcry_mpi_release (session->s_prime);
- for (i = 0; session->r && i < session->used; i++){
- if (session->r[i]) gcry_mpi_release (session->r[i]);
- if (session->r_prime[i]) gcry_mpi_release (session->r_prime[i]);
- }
+ if (session->r)
+ for (i = 0; session->r && i < session->used; i++)
+ if (session->r[i]) gcry_mpi_release (session->r[i]);
+ if (session->r_prime)
+ for (i = 0; session->r_prime && i < session->used; i++)
+ if (session->r_prime[i]) gcry_mpi_release (session->r_prime[i]);
+ if (session->a)
+ for (i = 0; session->a && i < session->used; i++)
+ if (session->a[i]) gcry_mpi_release (session->a[i]);
GNUNET_free_non_null (session->r);
GNUNET_free_non_null (session->r_prime);
+ GNUNET_free_non_null (session->a);
+ session->a = NULL;
session->s = NULL;
session->s_prime = NULL;
session->r = NULL;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30054 - gnunet/src/scalarproduct,
gnunet <=