diff options
-rw-r--r-- | net/ipv4/ip_output.c | 18 |
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)) |