netfilter: seqadj: re-load tcp header pointer after possible head reallocation
authorFlorian Westphal <fw@strlen.de>
Wed, 5 Dec 2018 13:12:19 +0000 (14:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 13 Jan 2019 08:50:57 +0000 (09:50 +0100)
commit6bcf9ef86c865129da9ee1de52ca32de6f859ae7
treed100cfa02fef9fe11c02ddbf8f7c69d1fcdeae5f
parentcee05c0371a6d5b65c96613b65227ccc2895cfad
netfilter: seqadj: re-load tcp header pointer after possible head reallocation

[ Upstream commit 530aad77010b81526586dfc09130ec875cd084e4 ]

When adjusting sack block sequence numbers, skb_make_writable() gets
called to make sure tcp options are all in the linear area, and buffer
is not shared.

This can cause tcp header pointer to get reallocated, so we must
reaload it to avoid memory corruption.

This bug pre-dates git history.

Reported-by: Neel Mehta <nmehta@google.com>
Reported-by: Shane Huntley <shuntley@google.com>
Reported-by: Heather Adkins <argv@google.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nf_conntrack_seqadj.c