|
@@ -1854,7 +1854,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
|
|
goto e_inval;
|
|
|
spec_dst = inet_select_addr(dev, 0, RT_SCOPE_LINK);
|
|
|
} else if (fib_validate_source(saddr, 0, tos, 0,
|
|
|
- dev, &spec_dst, &itag) < 0)
|
|
|
+ dev, &spec_dst, &itag, 0) < 0)
|
|
|
goto e_inval;
|
|
|
|
|
|
rth = dst_alloc(&ipv4_dst_ops);
|
|
@@ -1967,7 +1967,7 @@ static int __mkroute_input(struct sk_buff *skb,
|
|
|
|
|
|
|
|
|
err = fib_validate_source(saddr, daddr, tos, FIB_RES_OIF(*res),
|
|
|
- in_dev->dev, &spec_dst, &itag);
|
|
|
+ in_dev->dev, &spec_dst, &itag, skb->mark);
|
|
|
if (err < 0) {
|
|
|
ip_handle_martian_source(in_dev->dev, in_dev, skb, daddr,
|
|
|
saddr);
|
|
@@ -2141,7 +2141,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
|
|
int result;
|
|
|
result = fib_validate_source(saddr, daddr, tos,
|
|
|
net->loopback_dev->ifindex,
|
|
|
- dev, &spec_dst, &itag);
|
|
|
+ dev, &spec_dst, &itag, skb->mark);
|
|
|
if (result < 0)
|
|
|
goto martian_source;
|
|
|
if (result)
|
|
@@ -2170,7 +2170,7 @@ brd_input:
|
|
|
spec_dst = inet_select_addr(dev, 0, RT_SCOPE_LINK);
|
|
|
else {
|
|
|
err = fib_validate_source(saddr, 0, tos, 0, dev, &spec_dst,
|
|
|
- &itag);
|
|
|
+ &itag, skb->mark);
|
|
|
if (err < 0)
|
|
|
goto martian_source;
|
|
|
if (err)
|