netfilter: nft_payload: fix missing check for matching length in offloads
authorwenxu <wenxu@ucloud.cn>
Thu, 24 Oct 2019 07:52:45 +0000 (15:52 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 24 Oct 2019 10:27:29 +0000 (12:27 +0200)
commita69a85da458f79088c38a38db034a4d64d9c32c3
tree0ce824f5991bbcb5d74c5a8e220395c457f3318c
parent085461c8976e6cb4d5b608a7b7062f394c51a253
netfilter: nft_payload: fix missing check for matching length in offloads

Payload offload rule should also check the length of the match.
Moreover, check for unsupported link-layer fields:

 nft --debug=netlink add rule firewall zones vlan id 100
 ...
 [ payload load 2b @ link header + 0 => reg 1 ]

this loads 2byte base on ll header and offset 0.

This also fixes unsupported raw payload match.

Fixes: 92ad6325cb89 ("netfilter: nf_tables: add hardware offload support")
Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nft_payload.c