aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/ip_output.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 67f241b97649..86a284308271 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1474,16 +1474,14 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *ar
1474 } 1474 }
1475 1475
1476 { 1476 {
1477 struct flowi4 fl4 = { 1477 struct flowi4 fl4;
1478 .flowi4_oif = arg->bound_dev_if, 1478
1479 .daddr = daddr, 1479 flowi4_init_output(&fl4, arg->bound_dev_if, 0,
1480 .saddr = rt->rt_spec_dst, 1480 RT_TOS(ip_hdr(skb)->tos),
1481 .flowi4_tos = RT_TOS(ip_hdr(skb)->tos), 1481 RT_SCOPE_UNIVERSE, sk->sk_protocol,
1482 .fl4_sport = tcp_hdr(skb)->dest, 1482 ip_reply_arg_flowi_flags(arg),
1483 .fl4_dport = tcp_hdr(skb)->source, 1483 daddr, rt->rt_spec_dst,
1484 .flowi4_proto = sk->sk_protocol, 1484 tcp_hdr(skb)->source, tcp_hdr(skb)->dest);
1485 .flowi4_flags = ip_reply_arg_flowi_flags(arg),
1486 };
1487 security_skb_classify_flow(skb, flowi4_to_flowi(&fl4)); 1485 security_skb_classify_flow(skb, flowi4_to_flowi(&fl4));
1488 rt = ip_route_output_key(sock_net(sk), &fl4); 1486 rt = ip_route_output_key(sock_net(sk), &fl4);
1489 if (IS_ERR(rt)) 1487 if (IS_ERR(rt))