From: Greg Kroah-Hartman Date: Mon, 18 Jun 2018 04:48:01 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v4.16.17~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e2b0deb9f387ef42a9275be11b63f91e85cdb22;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: tcp-do-not-overshoot-window_clamp-in-tcp_rcv_space_adjust.patch --- diff --git a/queue-3.18/series b/queue-3.18/series index 841beaca217..9fbb673190c 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -35,3 +35,4 @@ i2c-viperboard-return-message-count-on-master_xfer-success.patch arm-davinci-board-dm646x-evm-set-vpif-capture-card-name.patch parisc-move-setup_profiling_timer-out-of-init-section.patch arm-8753-1-decompressor-add-a-missing-parameter-to-the-addruart-macro.patch +tcp-do-not-overshoot-window_clamp-in-tcp_rcv_space_adjust.patch diff --git a/queue-3.18/tcp-do-not-overshoot-window_clamp-in-tcp_rcv_space_adjust.patch b/queue-3.18/tcp-do-not-overshoot-window_clamp-in-tcp_rcv_space_adjust.patch new file mode 100644 index 00000000000..f86a5298cd5 --- /dev/null +++ b/queue-3.18/tcp-do-not-overshoot-window_clamp-in-tcp_rcv_space_adjust.patch @@ -0,0 +1,43 @@ +From 02db55718d53f9d426cee504c27fb768e9ed4ffe Mon Sep 17 00:00:00 2001 +From: Eric Dumazet +Date: Sun, 10 Dec 2017 17:55:02 -0800 +Subject: tcp: do not overshoot window_clamp in tcp_rcv_space_adjust() + +From: Eric Dumazet + +commit 02db55718d53f9d426cee504c27fb768e9ed4ffe upstream. + +While rcvbuf is properly clamped by tcp_rmem[2], rcvwin +is left to a potentially too big value. + +It has no serious effect, since : +1) tcp_grow_window() has very strict checks. +2) window_clamp can be mangled by user space to any value anyway. + +tcp_init_buffer_space() and companions use tcp_full_space(), +we use tcp_win_from_space() to avoid reloading sk->sk_rcvbuf + +Signed-off-by: Eric Dumazet +Acked-by: Soheil Hassas Yeganeh +Acked-by: Wei Wang +Acked-by: Neal Cardwell +Signed-off-by: David S. Miller +Cc: Benjamin Gilbert +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + net/ipv4/tcp_input.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/ipv4/tcp_input.c ++++ b/net/ipv4/tcp_input.c +@@ -605,7 +605,7 @@ void tcp_rcv_space_adjust(struct sock *s + sk->sk_rcvbuf = rcvbuf; + + /* Make the window clamp follow along. */ +- tp->window_clamp = rcvwin; ++ tp->window_clamp = tcp_win_from_space(sk, rcvbuf); + } + } + tp->rcvq_space.space = copied;