arm64: csum: Fix handling of bad packets
authorRobin Murphy <robin.murphy@arm.com>
Thu, 30 Jul 2020 09:56:49 +0000 (10:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2020 07:58:46 +0000 (09:58 +0200)
commitd9e8290bddb8e5eb5cc4342b290557de48c6ebea
tree608f3a6a3a15b64871bb1123e9cd3e7d359454bc
parent333e7d5ed10ca3d7bd37e5e3f3e2b72b2184bc26
arm64: csum: Fix handling of bad packets

[ Upstream commit 05fb3dbda187bbd9cc1cd0e97e5d6595af570ac6 ]

Although iph is expected to point to at least 20 bytes of valid memory,
ihl may be bogus, for example on reception of a corrupt packet. If it
happens to be less than 5, we really don't want to run away and
dereference 16GB worth of memory until it wraps back to exactly zero...

Fixes: 0e455d8e80aa ("arm64: Implement optimised IP checksum helpers")
Reported-by: guodeqing <geffrey.guo@huawei.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm64/include/asm/checksum.h