net/sched: act_mpls: ensure LSE is pullable before reading it
authorDavide Caratti <dcaratti@redhat.com>
Thu, 3 Dec 2020 09:37:52 +0000 (10:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Dec 2020 09:40:27 +0000 (10:40 +0100)
commit8f92330b08735e9a75ef1a8f6721c8ac51d03afb
treea00aa471e690ddf6b1f6aed2d80908b236c6706e
parent1086f789060ab968314b93ddbee91547f276b5d9
net/sched: act_mpls: ensure LSE is pullable before reading it

[ Upstream commit 9608fa653059c3f72faab0c148ac8773c46e7314 ]

when 'act_mpls' is used to mangle the LSE, the current value is read from
the packet dereferencing 4 bytes at mpls_hdr(): ensure that the label is
contained in the skb "linear" area.

Found by code inspection.

v2:
 - use MPLS_HLEN instead of sizeof(new_lse), thanks to Jakub Kicinski

Fixes: 2a2ea50870ba ("net: sched: add mpls manipulation actions to TC")
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Acked-by: Guillaume Nault <gnault@redhat.com>
Link: https://lore.kernel.org/r/3243506cba43d14858f3bd21ee0994160e44d64a.1606987058.git.dcaratti@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sched/act_mpls.c