Message ID | 20170516213903.78909-1-soheil.kdev@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Soheil Hassas Yeganeh <soheil.kdev@gmail.com> Date: Tue, 16 May 2017 17:39:02 -0400 > From: Soheil Hassas Yeganeh <soheil@google.com> > > Commit bafbb9c73241 ("tcp: eliminate negative reordering > in tcp_clean_rtx_queue") fixes an issue for negative > reordering metrics. > > To be resilient to such errors, warn and return > when a negative metric is passed to tcp_update_reordering(). > > Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com> > Signed-off-by: Neal Cardwell <ncardwell@google.com> > Signed-off-by: Yuchung Cheng <ycheng@google.com> > Signed-off-by: Eric Dumazet <edumazet@google.com> Applied, thanks.
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index f27dff64e59e..eb5eb87060a2 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -886,6 +886,9 @@ static void tcp_update_reordering(struct sock *sk, const int metric, struct tcp_sock *tp = tcp_sk(sk); int mib_idx; + if (WARN_ON_ONCE(metric < 0)) + return; + if (metric > tp->reordering) { tp->reordering = min(sysctl_tcp_max_reordering, metric);