aboutsummaryrefslogtreecommitdiff
path: root/src/cadet
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2015-01-09 18:04:30 +0000
committerBart Polot <bart@net.in.tum.de>2015-01-09 18:04:30 +0000
commit480a422aa30bb1cddacbd5ad422128ca723b7155 (patch)
tree9baf1ff179ff9212b7359c137c0a45c681c580cd /src/cadet
parenteb1351b3896ce06f8f6f78c3c317191fb44c36c9 (diff)
downloadgnunet-480a422aa30bb1cddacbd5ad422128ca723b7155.tar.gz
gnunet-480a422aa30bb1cddacbd5ad422128ca723b7155.zip
- more message size checks
Diffstat (limited to 'src/cadet')
-rw-r--r--src/cadet/gnunet-service-cadet_local.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cadet/gnunet-service-cadet_local.c b/src/cadet/gnunet-service-cadet_local.c
index 03fec52c1..97eba2903 100644
--- a/src/cadet/gnunet-service-cadet_local.c
+++ b/src/cadet/gnunet-service-cadet_local.c
@@ -222,6 +222,7 @@ channel_destroy_iterator (void *cls,
222 return GNUNET_OK; 222 return GNUNET_OK;
223} 223}
224 224
225
225/** 226/**
226 * Handler for client disconnection 227 * Handler for client disconnection
227 * 228 *
@@ -496,12 +497,15 @@ handle_data (void *cls, struct GNUNET_SERVER_Client *client,
496 /* Sanity check for message size */ 497 /* Sanity check for message size */
497 message_size = ntohs (message->size); 498 message_size = ntohs (message->size);
498 if (sizeof (struct GNUNET_CADET_LocalData) 499 if (sizeof (struct GNUNET_CADET_LocalData)
499 + sizeof (struct GNUNET_MessageHeader) > message_size) 500 + sizeof (struct GNUNET_MessageHeader) > message_size
501 || GNUNET_CONSTANTS_MAX_CADET_MESSAGE_SIZE < message_size)
500 { 502 {
501 GNUNET_break (0); 503 GNUNET_break (0);
502 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); 504 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
503 return; 505 return;
504 } 506 }
507
508 /* Sanity check for payload size */
505 payload_size = message_size - sizeof (struct GNUNET_CADET_LocalData); 509 payload_size = message_size - sizeof (struct GNUNET_CADET_LocalData);
506 msg = (struct GNUNET_CADET_LocalData *) message; 510 msg = (struct GNUNET_CADET_LocalData *) message;
507 payload = (struct GNUNET_MessageHeader *) &msg[1]; 511 payload = (struct GNUNET_MessageHeader *) &msg[1];