diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 64afe71e2129adf79c6505f1ac6b7a644210c873..c1253c2ea4176c3fea8d0c872bce0332bc24cdd4 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -174,8 +174,14 @@ static void mptcp_parse_option(const struct sk_buff *skb, * the checksum field MUST be ignored. */ if (opsize != expected_opsize && - opsize != expected_opsize + TCPOLEN_MPTCP_DSS_CHECKSUM) + opsize != expected_opsize + TCPOLEN_MPTCP_DSS_CHECKSUM) { + mp_opt->dsn64 = 0; + mp_opt->use_map = 0; + mp_opt->ack64 = 0; + mp_opt->use_ack = 0; + mp_opt->data_fin = 0; break; + } mp_opt->dss = 1;