aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2021-09-01 10:15:36 -0700
committerJakub Kicinski <kuba@kernel.org>2021-09-01 10:55:49 -0700
commit1094c6fe7280e17e0e87934add5ad2585e990def (patch)
tree8ab0fde4a5fc6bd3782ec08b7d0dc2cef6ba1949 /tools
parentmptcp: Fix duplicated argument in protocol.h (diff)
downloadwireguard-linux-1094c6fe7280e17e0e87934add5ad2585e990def.tar.xz
wireguard-linux-1094c6fe7280e17e0e87934add5ad2585e990def.zip
mptcp: fix possible divide by zero
Florian noted that if mptcp_alloc_tx_skb() allocation fails in __mptcp_push_pending(), we can end-up invoking mptcp_push_release()/tcp_push() with a zero mss, causing a divide by 0 error. This change addresses the issue refactoring the skb allocation code checking if skb collapsing will happen for sure and doing the skb allocation only after such check. Skb allocation will now happen only after the call to tcp_send_mss() which correctly initializes mss_now. As side bonuses we now fill the skb tx cache only when needed, and this also clean-up a bit the output path. v1 -> v2: - use lockdep_assert_held_once() - Jakub - fix indentation - Jakub Reported-by: Florian Westphal <fw@strlen.de> Fixes: 724cfd2ee8aa ("mptcp: allocate TX skbs in msk context") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions