mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
Add unfront check for TCP and UDP packets before performing further
processing.
Fixes: 4ed8eb6570
("netfilter: nf_tables: Add native tproxy support")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
8f518d43f8
commit
52f0f4e178
@ -30,6 +30,12 @@ static void nft_tproxy_eval_v4(const struct nft_expr *expr,
|
||||
__be16 tport = 0;
|
||||
struct sock *sk;
|
||||
|
||||
if (pkt->tprot != IPPROTO_TCP &&
|
||||
pkt->tprot != IPPROTO_UDP) {
|
||||
regs->verdict.code = NFT_BREAK;
|
||||
return;
|
||||
}
|
||||
|
||||
hp = skb_header_pointer(skb, ip_hdrlen(skb), sizeof(_hdr), &_hdr);
|
||||
if (!hp) {
|
||||
regs->verdict.code = NFT_BREAK;
|
||||
@ -91,7 +97,8 @@ static void nft_tproxy_eval_v6(const struct nft_expr *expr,
|
||||
|
||||
memset(&taddr, 0, sizeof(taddr));
|
||||
|
||||
if (!pkt->tprot_set) {
|
||||
if (pkt->tprot != IPPROTO_TCP &&
|
||||
pkt->tprot != IPPROTO_UDP) {
|
||||
regs->verdict.code = NFT_BREAK;
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user