mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
bridge: drop netfilter fake rtable unconditionally
am: 9bce26f224
Change-Id: I5477f23d8e81d7554189e76d92548847b8a8a11f
This commit is contained in:
@@ -29,6 +29,7 @@ EXPORT_SYMBOL(br_should_route_hook);
|
||||
static int
|
||||
br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
br_drop_fake_rtable(skb);
|
||||
return netif_receive_skb(skb);
|
||||
}
|
||||
|
||||
|
||||
@@ -521,21 +521,6 @@ static unsigned int br_nf_pre_routing(void *priv,
|
||||
}
|
||||
|
||||
|
||||
/* PF_BRIDGE/LOCAL_IN ************************************************/
|
||||
/* The packet is locally destined, which requires a real
|
||||
* dst_entry, so detach the fake one. On the way up, the
|
||||
* packet would pass through PRE_ROUTING again (which already
|
||||
* took place when the packet entered the bridge), but we
|
||||
* register an IPv4 PRE_ROUTING 'sabotage' hook that will
|
||||
* prevent this from happening. */
|
||||
static unsigned int br_nf_local_in(void *priv,
|
||||
struct sk_buff *skb,
|
||||
const struct nf_hook_state *state)
|
||||
{
|
||||
br_drop_fake_rtable(skb);
|
||||
return NF_ACCEPT;
|
||||
}
|
||||
|
||||
/* PF_BRIDGE/FORWARD *************************************************/
|
||||
static int br_nf_forward_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
@@ -905,12 +890,6 @@ static struct nf_hook_ops br_nf_ops[] __read_mostly = {
|
||||
.hooknum = NF_BR_PRE_ROUTING,
|
||||
.priority = NF_BR_PRI_BRNF,
|
||||
},
|
||||
{
|
||||
.hook = br_nf_local_in,
|
||||
.pf = NFPROTO_BRIDGE,
|
||||
.hooknum = NF_BR_LOCAL_IN,
|
||||
.priority = NF_BR_PRI_BRNF,
|
||||
},
|
||||
{
|
||||
.hook = br_nf_forward_ip,
|
||||
.pf = NFPROTO_BRIDGE,
|
||||
|
||||
Reference in New Issue
Block a user