From: Christoph Paasch <cpaasch@apple.com> Date: Mon, 11 May 2020 16:24:42 +0000 (-0700) Subject: mptcp: Initialize map_seq upon subflow establishment X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=64d950ae0b01eae96eb668b789c6d145c38ac41c;p=linux.git mptcp: Initialize map_seq upon subflow establishment When the other MPTCP-peer uses 32-bit data-sequence numbers, we rely on map_seq to indicate how to expand to a 64-bit data-sequence number in expand_seq() when receiving data. For new subflows, this field is not initialized, thus results in an "invalid" mapping being discarded. Fix this by initializing map_seq upon subflow establishment time. Fixes: f296234c98a8 ("mptcp: Add handling of incoming MP_JOIN requests") Signed-off-by: Christoph Paasch <cpaasch@apple.com> Reviewed-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> --- diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index e1f23016ed3f8..32ea8d35489a5 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1629,6 +1629,8 @@ bool mptcp_finish_join(struct sock *sk) ret = mptcp_pm_allow_new_subflow(msk); if (ret) { + subflow->map_seq = msk->ack_seq; + /* active connections are already on conn_list */ spin_lock_bh(&msk->join_list_lock); if (!WARN_ON_ONCE(!list_empty(&subflow->node)))