]> git.baikalelectronics.ru Git - kernel.git/commit
sctp: fix the panic caused by route update
authorXin Long <lucien.xin@gmail.com>
Sun, 23 Oct 2016 17:01:09 +0000 (01:01 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Oct 2016 21:32:19 +0000 (17:32 -0400)
commit4464791409921d5dbc4c9de3d9d0d73dba5a0edc
tree9b87c637727d62852c0335872595e8e14b2dc489
parent01941f5eb07279a3ca7efa059906d2fc0408998b
sctp: fix the panic caused by route update

Commit 3afb3807551f ("sctp: identify chunks that need to be fragmented
at IP level") made the chunk be fragmented at IP level in the next round
if it's size exceed PMTU.

But there still is another case, PMTU can be updated if transport's dst
expires and transport's pmtu_pending is set in sctp_packet_transmit. If
the new PMTU is less than the chunk, the same issue with that commit can
be triggered.

So we should drop this packet and let it retransmit in another round
where it would be fragmented at IP level.

This patch is to fix it by checking the chunk size after PMTU may be
updated and dropping this packet if it's size exceed PMTU.

Fixes: 0a12a535320a ("sctp: Add GSO support")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@txudriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/output.c