diff options
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index e24e4cf2a112..63d37004ee66 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -2730,7 +2730,12 @@ int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp, | |||
2730 | flp->fl4_src = (*rp)->rt_src; | 2730 | flp->fl4_src = (*rp)->rt_src; |
2731 | if (!flp->fl4_dst) | 2731 | if (!flp->fl4_dst) |
2732 | flp->fl4_dst = (*rp)->rt_dst; | 2732 | flp->fl4_dst = (*rp)->rt_dst; |
2733 | return xfrm_lookup(net, (struct dst_entry **)rp, flp, sk, 0); | 2733 | *rp = (struct rtable *) xfrm_lookup(net, &(*rp)->dst, flp, sk, 0); |
2734 | if (IS_ERR(*rp)) { | ||
2735 | err = PTR_ERR(*rp); | ||
2736 | *rp = NULL; | ||
2737 | return err; | ||
2738 | } | ||
2734 | } | 2739 | } |
2735 | 2740 | ||
2736 | return 0; | 2741 | return 0; |