diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index b96aa88087be1cc28179003f33b74b10a989088a..70e5e9e5d8351ee75eebd676ba40f9f8e2192eca 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@ -353,6 +353,8 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst, fl4.flowi4_proto = 0; fl4.fl4_sport = 0; fl4.fl4_dport = 0; + } else { + swap(fl4.fl4_sport, fl4.fl4_dport); } if (fib_lookup(net, &fl4, &res, 0))