route: Take the right src and dst addresses in ip_route_newports
authorSteffen Klassert <steffen.klassert@secunet.com>
Fri, 25 Mar 2011 08:28:45 +0000 (01:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Mar 2011 08:28:45 +0000 (01:28 -0700)
When we set up the flow informations in ip_route_newports(), we take
the address informations from the the rt_key_src and rt_key_dst fields
of the rtable. They appear to be empty. So take the address
informations from rt_src and rt_dst instead. This issue was introduced
by commit 5e2b61f78411be25f0b84f97d5b5d312f184dfd1 ("ipv4: Remove
flowi from struct rtable.")

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/route.h

index dc10244..f88429c 100644 (file)
@@ -270,8 +270,8 @@ static inline struct rtable *ip_route_newports(struct rtable *rt,
                struct flowi4 fl4 = {
                        .flowi4_oif = rt->rt_oif,
                        .flowi4_mark = rt->rt_mark,
-                       .daddr = rt->rt_key_dst,
-                       .saddr = rt->rt_key_src,
+                       .daddr = rt->rt_dst,
+                       .saddr = rt->rt_src,
                        .flowi4_tos = rt->rt_tos,
                        .flowi4_proto = protocol,
                        .fl4_sport = sport,