netfilter: ipvs: do not create conn for ABORT packet in sctp_conn_schedule
authorXin Long <lucien.xin@gmail.com>
Sun, 20 Aug 2017 05:38:08 +0000 (13:38 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 8 Sep 2017 11:40:23 +0000 (13:40 +0200)
There's no reason for ipvs to create a conn for an ABORT packet
even if sysctl_sloppy_sctp is set.

This patch is to accept it without creating a conn, just as ipvs
does for tcp's RST packet.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/ipvs/ip_vs_proto_sctp.c

index 81f08198b1256814f453090e6b68eb382be2fa3f..57c8ee66491eb8a66944afa3250396c36b11b218 100644 (file)
@@ -25,7 +25,8 @@ sctp_conn_schedule(struct netns_ipvs *ipvs, int af, struct sk_buff *skb,
                        sch = skb_header_pointer(skb, iph->len + sizeof(_sctph),
                                                 sizeof(_schunkh), &_schunkh);
                        if (sch) {
-                               if (!(sysctl_sloppy_sctp(ipvs) ||
+                               if (sch->type == SCTP_CID_ABORT ||
+                                   !(sysctl_sloppy_sctp(ipvs) ||
                                      sch->type == SCTP_CID_INIT))
                                        return 1;
                                ports = &sh->source;