]> git.hungrycats.org Git - linux/commitdiff
tcp: drop SYN+FIN messages
authorEric Dumazet <eric.dumazet@gmail.com>
Fri, 2 Dec 2011 23:41:42 +0000 (23:41 +0000)
committerWilly Tarreau <w@1wt.eu>
Sun, 7 Oct 2012 21:41:01 +0000 (23:41 +0200)
commit fdf5af0daf8019cec2396cdef8fb042d80fe71fa upstream.

Denys Fedoryshchenko reported that SYN+FIN attacks were bringing his
linux machines to their limits.

Dont call conn_request() if the TCP flags includes SYN flag

Reported-by: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
net/ipv4/tcp_input.c

index 4b148e5758c692d54bf18df06e97d50a33abd80e..db755c416dafac0e4afa02121a66637f44705876 100644 (file)
@@ -5634,6 +5634,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
                        goto discard;
 
                if (th->syn) {
+                       if (th->fin)
+                               goto discard;
                        if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
                                return 1;