aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/netfilter/ipt_SYNPROXY.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/netfilter/ipt_SYNPROXY.c b/net/ipv4/netfilter/ipt_SYNPROXY.c
index 90e489eb1c0a..67e17dcda65e 100644
--- a/net/ipv4/netfilter/ipt_SYNPROXY.c
+++ b/net/ipv4/netfilter/ipt_SYNPROXY.c
@@ -285,11 +285,15 @@ synproxy_tg4(struct sk_buff *skb, const struct xt_action_param *par)
285 XT_SYNPROXY_OPT_ECN); 285 XT_SYNPROXY_OPT_ECN);
286 286
287 synproxy_send_client_synack(skb, th, &opts); 287 synproxy_send_client_synack(skb, th, &opts);
288 } else if (th->ack && !(th->fin || th->rst || th->syn)) 288 return NF_DROP;
289
290 } else if (th->ack && !(th->fin || th->rst || th->syn)) {
289 /* ACK from client */ 291 /* ACK from client */
290 synproxy_recv_client_ack(snet, skb, th, &opts, ntohl(th->seq)); 292 synproxy_recv_client_ack(snet, skb, th, &opts, ntohl(th->seq));
293 return NF_DROP;
294 }
291 295
292 return NF_DROP; 296 return XT_CONTINUE;
293} 297}
294 298
295static unsigned int ipv4_synproxy_hook(unsigned int hooknum, 299static unsigned int ipv4_synproxy_hook(unsigned int hooknum,