1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 06:23:53 +01:00

gnrc_tcp: allow unknown options

This commit is contained in:
Simon Brummer 2019-09-24 19:13:13 +02:00
parent 71680a6265
commit fdda22c200

View File

@ -51,7 +51,9 @@ int _option_parse(gnrc_tcp_tcb_t *tcb, tcp_hdr_t *hdr)
continue;
case TCP_OPTION_KIND_MSS:
if (opt_left < TCP_OPTION_LENGTH_MIN || option->length > opt_left || option->length != TCP_OPTION_LENGTH_MSS) {
if (opt_left < TCP_OPTION_LENGTH_MIN || option->length > opt_left ||
option->length != TCP_OPTION_LENGTH_MSS) {
DEBUG("gnrc_tcp_option.c : _option_parse() : invalid MSS Option length.\n");
return -1;
}
@ -61,14 +63,15 @@ int _option_parse(gnrc_tcp_tcb_t *tcb, tcp_hdr_t *hdr)
break;
default:
DEBUG("gnrc_tcp_option.c : _option_parse() : Unknown option found.\
KIND=%"PRIu8", LENGTH=%"PRIu8"\n", option->kind, option->length);
return -1;
if (opt_left >= TCP_OPTION_LENGTH_MIN) {
DEBUG("gnrc_tcp_option.c : _option_parse() : Unsupported option found.\
KIND=%"PRIu8", LENGTH=%"PRIu8"\n", option->kind, option->length);
}
}
if (opt_left < TCP_OPTION_LENGTH_MIN || option->length > opt_left) {
DEBUG("gnrc_tcp_option.c : _option_parse() : invalid option length\n");
return 0;
DEBUG("gnrc_tcp_option.c : _option_parse() : Invalid option. Drop Packet.\n");
return -1;
}
opt_ptr += option->length;