Message ID | 20241204085801.11563-1-moyuanhao3676@163.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] tcp: Check space before adding MPTCP options | expand |
Hi MoYuanhao, +Cc MPTCP mailing list. (Please cc the MPTCP list next time) On 04/12/2024 09:58, MoYuanhao wrote: > Ensure enough space before adding MPTCP options in tcp_syn_options() > Added a check to verify sufficient remaining space > before inserting MPTCP options in SYN packets. > This prevents issues when space is insufficient. Thank you for this patch. I'm surprised we all missed this check, but yes it is missing. As mentioned by Eric in his previous email, please add a 'Fixes' tag. For bug-fixes, you should also Cc stable and target 'net', not 'net-next': Fixes: cec37a6e41aa ("mptcp: Handle MP_CAPABLE options for outgoing connections") Cc: stable@vger.kernel.org Regarding the code, it looks OK to me, as we did exactly that with mptcp_synack_options(). In mptcp_established_options(), we pass 'remaining' because many MPTCP options can be set, but not here. So I guess that's fine to keep the code like that, especially for the 'net' tree. Also, and linked to Eric's email, did you have an issue with that, or is it to prevent issues in the future? One last thing, please don’t repost your patches within one 24h period, see: https://docs.kernel.org/process/maintainer-netdev.html Because the code is OK to me, and the same patch has already been sent twice to the netdev ML within a few hours, I'm going to apply this patch in our MPTCP tree with the suggested modifications. Later on, we will send it for inclusion in the net tree. pw-bot: awaiting-upstream (Not sure this pw-bot instruction will work as no net/mptcp/* files have been modified) Cheers, Matt
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 5485a70b5fe5..0e5b9a654254 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -883,8 +883,10 @@ static unsigned int tcp_syn_options(struct sock *sk, struct sk_buff *skb, unsigned int size; if (mptcp_syn_options(sk, skb, &size, &opts->mptcp)) { - opts->options |= OPTION_MPTCP; - remaining -= size; + if (remaining >= size) { + opts->options |= OPTION_MPTCP; + remaining -= size; + } } }
Ensure enough space before adding MPTCP options in tcp_syn_options() Added a check to verify sufficient remaining space before inserting MPTCP options in SYN packets. This prevents issues when space is insufficient. Signed-off-by: MoYuanhao <moyuanhao3676@163.com> --- net/ipv4/tcp_output.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)