diff options
-rw-r--r-- | src/twister/taler-twister-service.c | 62 |
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); |