dccp: fix out of bound access in dccp_v4_err()
authorEric Dumazet <edumazet@google.com>
Thu, 3 Nov 2016 02:00:40 +0000 (19:00 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 16 Mar 2017 02:18:53 +0000 (02:18 +0000)
commit96106a207ae972d8f9e4815e84c159f29e4bbee7
treeecdf7c7d2a774186cf117c5e74ec879a159aa00c
parent0d8a6712456972bbf01275029dfeaa6187d78216
dccp: fix out of bound access in dccp_v4_err()

[ Upstream commit 6706a97fec963d6cb3f7fc2978ec1427b4651214 ]

dccp_v4_err() does not use pskb_may_pull() and might access garbage.

We only need 4 bytes at the beginning of the DCCP header, like TCP,
so the 8 bytes pulled in icmp_socket_deliver() are more than enough.

This patch might allow to process more ICMP messages, as some routers
are still limiting the size of reflected bytes to 28 (RFC 792), instead
of extended lengths (RFC 1812 4.3.2.3)

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.2: use offsetof() + sizeof() instead of
 offsetofend()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/dccp/ipv4.c