From: Kuniyuki Iwashima Date: Thu, 23 Oct 2025 23:16:51 +0000 (+0000) Subject: sctp: Don't copy sk_sndbuf and sk_rcvbuf in sctp_sock_migrate(). X-Git-Tag: v6.19-rc1~170^2~304^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d4df59aae91340e777660cfe9862b7d8e15b077;p=thirdparty%2Fkernel%2Flinux.git sctp: Don't copy sk_sndbuf and sk_rcvbuf in sctp_sock_migrate(). sctp_sock_migrate() is called from 2 places. 1) sctp_accept() calls sp->pf->create_accept_sk() before sctp_sock_migrate(), and sp->pf->create_accept_sk() calls sctp_copy_sock(). 2) sctp_do_peeloff() also calls sctp_copy_sock() before sctp_sock_migrate(). sctp_copy_sock() copies sk_sndbuf and sk_rcvbuf from the parent socket. Let's not copy the two fields in sctp_sock_migrate(). Signed-off-by: Kuniyuki Iwashima Acked-by: Xin Long Link: https://patch.msgid.link/20251023231751.4168390-3-kuniyu@google.com Signed-off-by: Jakub Kicinski --- diff --git a/net/sctp/socket.c b/net/sctp/socket.c index d190e75e46454..735b1222af955 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -9523,12 +9523,9 @@ static int sctp_sock_migrate(struct sock *oldsk, struct sock *newsk, struct sctp_bind_hashbucket *head; int err; - /* Migrate socket buffer sizes and all the socket level options to the - * new socket. + /* Migrate all the socket level options to the new socket. + * Brute force copy old sctp opt. */ - newsk->sk_sndbuf = oldsk->sk_sndbuf; - newsk->sk_rcvbuf = oldsk->sk_rcvbuf; - /* Brute force copy old sctp opt. */ sctp_copy_descendant(newsk, oldsk); /* Restore the ep value that was overwritten with the above structure