: Fix invalid return values in sctp_new
PATCH 11/12 : Fix invalid return values in sctp_new
sctp conntrack should return 0 for invalid packets, otherwise we end up with invalid conntrack entries.
[email protected], 2004-09-20 11:54:00+02:00, [email protected]
[NETFILTER]: Fix invalid return values in sctp_new
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/09/20 11:54:00+02:00 [email protected]
# [NETFILTER]: Fix invalid return values in sctp_new
#
# Signed-off-by: Patrick McHardy <[email protected]>
#
# net/ipv4/netfilter/ip_conntrack_proto_sctp.c # 2004/09/20 11:53:36+02:00 [email protected] +5 -5 # [NETFILTER]: Fix invalid return values in sctp_new # # Signed-off-by: Patrick McHardy <[email protected]> # diff -Nru a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c --- a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c 2004-09-20 11:59:52 +02:00 +++ b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c 2004-09-20 11:59:52 +02:00 @@ -430,16 +430,16 @@ DEBUGP("\n");
if (skb_copy_bits(skb, skb->nh.iph->ihl * 4, &sctph, sizeof(sctph)) != 0)
- return -1;
+ return 0;
if (do_basic_checks(conntrack, skb, map) != 0)
- return -1;
+ return 0;
/* If an OOTB packet has any of these chunks discard (Sec 8.4) */ if ((test_bit (SCTP_CID_ABORT, (void *)map))
|| (test_bit (SCTP_CID_SHUTDOWN_COMPLETE, (void *)map))
|| (test_bit (SCTP_CID_COOKIE_ACK, (void *)map))) {- return -1;
+ return 0;
}
newconntrack = SCTP_CONNTRACK_MAX;
@@ -461,7 +461,7 @@
if (skb_copy_bits(skb, offset + sizeof (sctp_chunkhdr_t),
&inithdr, sizeof(inithdr)) != 0) {
- return -1;
+ return 0;
}
DEBUGP("Setting vtag %x for new conn\n",
@@ -471,7 +471,7 @@
inithdr.init_tag;
} else {
/* Sec 8.5.1 (A) */
- return -1;
+ return 0;
}
}
/* If it is a shutdown ack OOTB packet, we expect a return