xfrm: Return dst directly from xfrm_lookup()
Instead of on the stack. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@ -1429,7 +1429,12 @@ static void mld_sendpack(struct sk_buff *skb)
|
||||
&ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr,
|
||||
skb->dev->ifindex);
|
||||
|
||||
err = xfrm_lookup(net, &dst, &fl, NULL, 0);
|
||||
dst = xfrm_lookup(net, dst, &fl, NULL, 0);
|
||||
err = 0;
|
||||
if (IS_ERR(dst)) {
|
||||
err = PTR_ERR(dst);
|
||||
dst = NULL;
|
||||
}
|
||||
skb_dst_set(skb, dst);
|
||||
if (err)
|
||||
goto err_out;
|
||||
@ -1796,9 +1801,11 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
|
||||
&ipv6_hdr(skb)->saddr, &ipv6_hdr(skb)->daddr,
|
||||
skb->dev->ifindex);
|
||||
|
||||
err = xfrm_lookup(net, &dst, &fl, NULL, 0);
|
||||
if (err)
|
||||
dst = xfrm_lookup(net, dst, &fl, NULL, 0);
|
||||
if (IS_ERR(dst)) {
|
||||
err = PTR_ERR(dst);
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
skb_dst_set(skb, dst);
|
||||
err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, skb->dev,
|
||||
|
Reference in New Issue
Block a user