https://github.com/torvalds/linux
Revision 804ec7ebe8ea003999ca8d1bfc499edc6a9e07df authored by Davide Caratti on 25 May 2017, 17:14:56 UTC, committed by David S. Miller on 26 May 2017, 18:40:46 UTC
sometimes ICMP replies to INIT chunks are ignored by the client, even if
the encapsulated SCTP headers match an open socket. This happens when the
ICMP packet is carried by a paged skb: use skb_header_pointer() to read
packet contents beyond the SCTP header, so that chunk header and initiate
tag are validated correctly.

v2:
- don't use skb_header_pointer() to read the transport header, since
  icmp_socket_deliver() already puts these 8 bytes in the linear area.
- change commit message to make specific reference to INIT chunks.

Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Reviewed-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 0908cf4
History
Tip revision: 804ec7ebe8ea003999ca8d1bfc499edc6a9e07df authored by Davide Caratti on 25 May 2017, 17:14:56 UTC
sctp: fix ICMP processing if skb is non-linear
Tip revision: 804ec7e
File Mode Size
Kconfig -rw-r--r-- 70.6 KB
Makefile -rw-r--r-- 1.2 KB
calibrate.c -rw-r--r-- 8.5 KB
do_mounts.c -rw-r--r-- 14.6 KB
do_mounts.h -rw-r--r-- 1.1 KB
do_mounts_initrd.c -rw-r--r-- 3.4 KB
do_mounts_md.c -rw-r--r-- 8.2 KB
do_mounts_rd.c -rw-r--r-- 8.3 KB
init_task.c -rw-r--r-- 802 bytes
initramfs.c -rw-r--r-- 14.0 KB
main.c -rw-r--r-- 25.5 KB
noinitramfs.c -rw-r--r-- 1.5 KB
version.c -rw-r--r-- 1.2 KB

back to top