Skip to content

Commit d815d90

Browse files
ebiedermummakynes
authored andcommitted
netfilter: Push struct net down into nf_afinfo.reroute
The network namespace is needed when routing a packet. Stop making nf_afinfo.reroute guess which network namespace is the proper namespace to route the packet in. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
1 parent 372892e commit d815d90

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

include/linux/netfilter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ struct nf_afinfo {
283283
struct flowi *fl, bool strict);
284284
void (*saveroute)(const struct sk_buff *skb,
285285
struct nf_queue_entry *entry);
286-
int (*reroute)(struct sk_buff *skb,
286+
int (*reroute)(struct net *net, struct sk_buff *skb,
287287
const struct nf_queue_entry *entry);
288288
int route_key_size;
289289
};

net/ipv4/netfilter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static void nf_ip_saveroute(const struct sk_buff *skb,
104104
}
105105
}
106106

107-
static int nf_ip_reroute(struct sk_buff *skb,
107+
static int nf_ip_reroute(struct net *net, struct sk_buff *skb,
108108
const struct nf_queue_entry *entry)
109109
{
110110
const struct ip_rt_info *rt_info = nf_queue_entry_reroute(entry);

net/ipv6/netfilter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ static void nf_ip6_saveroute(const struct sk_buff *skb,
9393
}
9494
}
9595

96-
static int nf_ip6_reroute(struct sk_buff *skb,
96+
static int nf_ip6_reroute(struct net *net, struct sk_buff *skb,
9797
const struct nf_queue_entry *entry)
9898
{
9999
struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry);

net/netfilter/nf_queue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
199199

200200
if (verdict == NF_ACCEPT) {
201201
afinfo = nf_get_afinfo(entry->state.pf);
202-
if (!afinfo || afinfo->reroute(skb, entry) < 0)
202+
if (!afinfo || afinfo->reroute(entry->state.net, skb, entry) < 0)
203203
verdict = NF_DROP;
204204
}
205205

0 commit comments

Comments
 (0)