summaryrefslogtreecommitdiffstats
path: root/net/mptcp/protocol.c
diff options
context:
space:
mode:
authorChristoph Paasch <cpaasch@apple.com>2020-05-11 09:24:42 -0700
committerDavid S. Miller <davem@davemloft.net>2020-05-12 12:08:22 -0700
commit64d950ae0b01eae96eb668b789c6d145c38ac41c (patch)
tree8231999311a1140e6a5226c396d2ed998a733629 /net/mptcp/protocol.c
parent1abfb181e089868fec0d00404b0cf4615b7df825 (diff)
downloadlinux-stable-64d950ae0b01eae96eb668b789c6d145c38ac41c.tar.gz
linux-stable-64d950ae0b01eae96eb668b789c6d145c38ac41c.tar.bz2
linux-stable-64d950ae0b01eae96eb668b789c6d145c38ac41c.zip
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>
Diffstat (limited to 'net/mptcp/protocol.c')
-rw-r--r--net/mptcp/protocol.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index e1f23016ed3f..32ea8d35489a 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)))