summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-06-15 00:01:35 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2019-06-15 00:01:35 +0200
commit90b191290d18ca0a8e4bf2cf85597db06d65b5b2 (patch)
treeddf60c191a4f7e6b4438a4c8cafc4673fce6c732
parentd1afe98957cae44bca603ffc14267cce64de5cff (diff)
downloadtwister-90b191290d18ca0a8e4bf2cf85597db06d65b5b2.tar.gz
twister-90b191290d18ca0a8e4bf2cf85597db06d65b5b2.tar.bz2
twister-90b191290d18ca0a8e4bf2cf85597db06d65b5b2.zip
Avoid asserting upon malformed messages.
-rw-r--r--src/twister/taler-twister-service.c62
1 files changed, 41 insertions, 21 deletions
diff --git a/src/twister/taler-twister-service.c b/src/twister/taler-twister-service.c
index 2e82b1f..b891715 100644
--- a/src/twister/taler-twister-service.c
+++ b/src/twister/taler-twister-service.c
@@ -2632,13 +2632,17 @@ handle_modify_path_dl (void *cls,
tailsize = ntohs (src->header.size) - sizeof (*src);
- GNUNET_assert
- (tailsize == GNUNET_STRINGS_buffer_tokenize
- ((const char *) &src[1],
- tailsize,
- 2,
- &payload_path,
- &payload_value));
+ if (tailsize != GNUNET_STRINGS_buffer_tokenize
+ ((const char *) &src[1],
+ tailsize,
+ 2,
+ &payload_path,
+ &payload_value))
+ {
+ GNUNET_break_op (0);
+ GNUNET_SERVICE_client_drop (c);
+ return;
+ }
modify_path_dl = GNUNET_strdup (payload_path);
modify_value = GNUNET_strdup (payload_value);
@@ -2694,12 +2698,17 @@ handle_flip_path_dl (void *cls,
tailsize = ntohs (src->header.size) - sizeof (*src);
- GNUNET_assert
- (tailsize == GNUNET_STRINGS_buffer_tokenize
+ if (tailsize == GNUNET_STRINGS_buffer_tokenize
((const char *) &src[1],
tailsize,
1,
- &payload));
+ &payload))
+ {
+ GNUNET_break_op (0);
+ GNUNET_SERVICE_client_drop (c);
+ return;
+ }
+
flip_path_dl = GNUNET_strdup (payload);
send_acknowledgement (c);
}
@@ -2746,11 +2755,17 @@ handle_flip_path_ul (void *cls,
tailsize = ntohs (src->header.size) - sizeof (*src);
- GNUNET_assert
- (tailsize == GNUNET_STRINGS_buffer_tokenize ((char *) &src[1],
- tailsize,
- 1,
- &payload));
+ if (tailsize == GNUNET_STRINGS_buffer_tokenize
+ ((const char *) &src[1],
+ tailsize,
+ 1,
+ &payload))
+ {
+ GNUNET_break_op (0);
+ GNUNET_SERVICE_client_drop (c);
+ return;
+ }
+
flip_path_ul = GNUNET_strdup (payload);
send_acknowledgement (c);
}
@@ -2785,12 +2800,17 @@ handle_delete_path (void *cls,
tailsize = ntohs (src->header.size) - sizeof (*src);
- GNUNET_assert
- (tailsize == GNUNET_STRINGS_buffer_tokenize
- ((const char *) &src[1],
- tailsize,
- 1,
- &payload));
+ if (tailsize == GNUNET_STRINGS_buffer_tokenize
+ ((const char *) &src[1],
+ tailsize,
+ 1,
+ &payload))
+ {
+ GNUNET_break_op (0);
+ GNUNET_SERVICE_client_drop (c);
+ return;
+ }
+
delete_path = GNUNET_strdup (payload);
send_acknowledgement (c);