netfilter: xtables: fix mangle tables
In POST_ROUTING hook, calling dev_net(in) is going to oops. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
parent
9d288dffe3
commit
b2907e5019
|
@ -87,7 +87,9 @@ iptable_mangle_hook(unsigned int hook,
|
||||||
{
|
{
|
||||||
if (hook == NF_INET_LOCAL_OUT)
|
if (hook == NF_INET_LOCAL_OUT)
|
||||||
return ipt_local_hook(hook, skb, in, out, okfn);
|
return ipt_local_hook(hook, skb, in, out, okfn);
|
||||||
|
if (hook == NF_INET_POST_ROUTING)
|
||||||
|
return ipt_do_table(skb, hook, in, out,
|
||||||
|
dev_net(out)->ipv4.iptable_mangle);
|
||||||
/* PREROUTING/INPUT/FORWARD: */
|
/* PREROUTING/INPUT/FORWARD: */
|
||||||
return ipt_do_table(skb, hook, in, out,
|
return ipt_do_table(skb, hook, in, out,
|
||||||
dev_net(in)->ipv4.iptable_mangle);
|
dev_net(in)->ipv4.iptable_mangle);
|
||||||
|
|
|
@ -81,7 +81,9 @@ ip6table_mangle_hook(unsigned int hook, struct sk_buff *skb,
|
||||||
{
|
{
|
||||||
if (hook == NF_INET_LOCAL_OUT)
|
if (hook == NF_INET_LOCAL_OUT)
|
||||||
return ip6t_local_out_hook(hook, skb, out, okfn);
|
return ip6t_local_out_hook(hook, skb, out, okfn);
|
||||||
|
if (hook == NF_INET_POST_ROUTING)
|
||||||
|
return ip6t_do_table(skb, hook, in, out,
|
||||||
|
dev_net(out)->ipv6.ip6table_mangle);
|
||||||
/* INPUT/FORWARD */
|
/* INPUT/FORWARD */
|
||||||
return ip6t_do_table(skb, hook, in, out,
|
return ip6t_do_table(skb, hook, in, out,
|
||||||
dev_net(in)->ipv6.ip6table_mangle);
|
dev_net(in)->ipv6.ip6table_mangle);
|
||||||
|
|
Loading…
Reference in New Issue