]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
tcp: warn on negative reordering values
authorSoheil Hassas Yeganeh <soheil@google.com>
Tue, 16 May 2017 21:39:02 +0000 (17:39 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 May 2017 20:55:46 +0000 (16:55 -0400)
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c

index bbadd79815a4c6665c1a832c5c415965d2275e2e..2fa55f57ac06584bfd9b555799ceb3bbfb7e1b4e 100644 (file)
@@ -887,6 +887,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);