diff options
author | Davide Caratti <dcaratti@redhat.com> | 2017-05-25 19:14:56 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-06-07 12:05:59 +0200 |
commit | 97f54575ff57da3f93f95006802a7892450c1898 (patch) | |
tree | f303cf7de089f066e7632a2d7a3bbcbe24c8c721 /include/net/flow.h | |
parent | fe22b6005538095f6e95e5152a99fc59e9ad198c (diff) | |
download | linux-stable-97f54575ff57da3f93f95006802a7892450c1898.tar.gz linux-stable-97f54575ff57da3f93f95006802a7892450c1898.tar.bz2 linux-stable-97f54575ff57da3f93f95006802a7892450c1898.zip |
sctp: fix ICMP processing if skb is non-linear
[ Upstream commit 804ec7ebe8ea003999ca8d1bfc499edc6a9e07df ]
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/net/flow.h')
0 files changed, 0 insertions, 0 deletions