linux/net/sctp
Xin Long 744ed911ee sctp: fix the issue that the cookie-ack with auth can't get processed
commit ce402f044e upstream.

When auth is enabled for cookie-ack chunk, in sctp_inq_pop, sctp
processes auth chunk first, then continues to the next chunk in
this packet if chunk_end + chunk_hdr size < skb_tail_pointer().
Otherwise, it will go to the next packet or discard this chunk.

However, it missed the fact that cookie-ack chunk's size is equal
to chunk_hdr size, which couldn't match that check, and thus this
chunk would not get processed.

This patch fixes it by changing the check to chunk_end + chunk_hdr
size <= skb_tail_pointer().

Fixes: 26b87c7881 ("net: sctp: fix remote memory pressure from excessive queueing")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-10-21 08:45:51 +01:00
..
associola.c sctp: fix the transports round robin issue when init is retransmitted 2016-05-01 00:05:58 +02:00
auth.c sctp: translate host order to network order when setting a hmacid 2015-12-14 10:17:13 +00:00
bind_addr.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
chunk.c sctp: fix checkpatch errors with space required or prohibited 2013-12-26 13:47:47 -05:00
command.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
debug.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
endpointola.c net: sctp: migrate most recently used transport to ktime 2014-06-11 12:23:17 -07:00
input.c sctp: add the missing sock_owned_by_user check in sctp_icmp_redirect 2018-01-01 20:51:57 +00:00
inqueue.c sctp: fix the issue that the cookie-ack with auth can't get processed 2018-10-21 08:45:51 +01:00
ipv6.c sctp: handle two v4 addrs comparison in sctp_inet6_cmp_addr 2018-10-21 08:45:48 +01:00
Kconfig net: sctp: get rid of SCTP_DBG_TSNS entirely 2013-07-02 00:08:03 -07:00
Makefile sctp: implement sctp association probing module 2010-04-30 22:41:09 -04:00
objcnt.c sctp: fix checkpatch errors with (foo*)|foo * bar|foo* bar 2013-12-26 13:47:47 -05:00
output.c sctp: Fix race between OOTB responce and route removal 2015-07-06 10:40:21 +01:00
outqueue.c sctp: start t5 timer only when peer rwnd is 0 and local state is SHUTDOWN_PENDING 2016-01-28 11:57:53 +00:00
primitive.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
probe.c sctp: loading sctp when load sctp_probe 2013-12-16 20:04:27 -05:00
proc.c snmp: fix some left over of snmp stats 2014-05-14 15:33:47 -04:00
protocol.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
sm_make_chunk.c sctp: verify size of a new chunk in _sctp_make_chunk() 2018-06-16 22:21:32 +01:00
sm_sideeffect.c sctp: fix a type cast warnings that causes a_rwnd gets the wrong value 2018-01-01 20:52:00 +00:00
sm_statefuns.c sctp: validate chunk len before actually using it 2017-02-23 03:54:47 +00:00
sm_statetable.c sctp: fix checkpatch errors with indent 2013-12-26 13:47:48 -05:00
socket.c sctp: do not allow the v4 socket to bind a v4mapped v6 address 2018-03-03 15:52:24 +00:00
ssnmap.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
sysctl.c net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory 2016-01-28 10:41:46 +00:00
transport.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
tsnmap.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
ulpevent.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
ulpqueue.c sctp: add support for busy polling to sctp protocol 2014-04-20 18:18:55 -04:00