diff options
author | Bart Polot <bart@net.in.tum.de> | 2015-01-09 18:04:30 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2015-01-09 18:04:30 +0000 |
commit | 480a422aa30bb1cddacbd5ad422128ca723b7155 (patch) | |
tree | 9baf1ff179ff9212b7359c137c0a45c681c580cd /src/cadet | |
parent | eb1351b3896ce06f8f6f78c3c317191fb44c36c9 (diff) | |
download | gnunet-480a422aa30bb1cddacbd5ad422128ca723b7155.tar.gz gnunet-480a422aa30bb1cddacbd5ad422128ca723b7155.zip |
- more message size checks
Diffstat (limited to 'src/cadet')
-rw-r--r-- | src/cadet/gnunet-service-cadet_local.c | 6 |
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]; |