[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34089 - in gnunet/src: psyc psycstore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34089 - in gnunet/src: psyc psycstore |
Date: |
Thu, 31 Jul 2014 10:18:17 +0200 |
Author: tg
Date: 2014-07-31 10:18:17 +0200 (Thu, 31 Jul 2014)
New Revision: 34089
Modified:
gnunet/src/psyc/gnunet-service-psyc.c
gnunet/src/psycstore/gnunet-service-psycstore.c
Log:
psyc, psycstore: operation result max error size
Modified: gnunet/src/psyc/gnunet-service-psyc.c
===================================================================
--- gnunet/src/psyc/gnunet-service-psyc.c 2014-07-30 21:18:13 UTC (rev
34088)
+++ gnunet/src/psyc/gnunet-service-psyc.c 2014-07-31 08:18:17 UTC (rev
34089)
@@ -255,11 +255,6 @@
uint8_t tmit_state;
/**
- * FIXME: needed?
- */
- uint8_t in_transmit;
-
- /**
* Is this a channel master (#GNUNET_YES), or slave (#GNUNET_NO)?
*/
uint8_t is_master;
@@ -609,17 +604,21 @@
int64_t result_code, const char *err_msg)
{
struct OperationResult *res;
- size_t err_len = 0; // FIXME: maximum length
+ size_t err_size = 0;
if (NULL != err_msg)
- err_len = strlen (err_msg) + 1;
- res = GNUNET_malloc (sizeof (struct OperationResult) + err_len);
+ err_size = strnlen (err_msg,
+ GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*res)) + 1;
+ res = GNUNET_malloc (sizeof (struct OperationResult) + err_size);
res->header.type = htons (GNUNET_MESSAGE_TYPE_PSYC_RESULT_CODE);
- res->header.size = htons (sizeof (struct OperationResult) + err_len);
+ res->header.size = htons (sizeof (struct OperationResult) + err_size);
res->result_code = GNUNET_htonll (result_code + INT64_MAX + 1);
res->op_id = op_id;
- if (0 < err_len)
- memcpy (&res[1], err_msg, err_len);
+ if (0 < err_size)
+ {
+ memcpy (&res[1], err_msg, err_size);
+ ((char *) &res[1])[err_size - 1] = '\0';
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"%p Sending result to client for operation #%" PRIu64 ": "
"%" PRId64 " (%s)\n",
Modified: gnunet/src/psycstore/gnunet-service-psycstore.c
===================================================================
--- gnunet/src/psycstore/gnunet-service-psycstore.c 2014-07-30 21:18:13 UTC
(rev 34088)
+++ gnunet/src/psycstore/gnunet-service-psycstore.c 2014-07-31 08:18:17 UTC
(rev 34089)
@@ -105,17 +105,21 @@
int64_t result_code, const char *err_msg)
{
struct OperationResult *res;
- size_t err_len = 0; // FIXME: maximum length
+ size_t err_size = 0;
if (NULL != err_msg)
- err_len = strlen (err_msg) + 1;
- res = GNUNET_malloc (sizeof (struct OperationResult) + err_len);
+ err_size = strnlen (err_msg,
+ GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*res)) + 1;
+ res = GNUNET_malloc (sizeof (struct OperationResult) + err_size);
res->header.type = htons (GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_CODE);
- res->header.size = htons (sizeof (struct OperationResult) + err_len);
+ res->header.size = htons (sizeof (struct OperationResult) + err_size);
res->result_code = GNUNET_htonll (result_code - INT64_MIN);
res->op_id = op_id;
- if (0 < err_len)
- memcpy (&res[1], err_msg, err_len);
+ if (0 < err_size)
+ {
+ memcpy (&res[1], err_msg, err_size);
+ ((char *) &res[1])[err_size - 1] = '\0';
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Sending result to client: %" PRId64 " (%s)\n",
result_code, err_msg);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34089 - in gnunet/src: psyc psycstore,
gnunet <=