Эх сурвалжийг харах

[IPV4] bug: open-coded inet_make_mask() in fib_semantic_match() is broken

... and works only on little-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Al Viro 18 жил өмнө
parent
commit
1e8aa6f125

+ 1 - 2
net/ipv4/fib_semantics.c

@@ -914,8 +914,7 @@ out_fill_res:
 	res->fi = fa->fa_info;
 #ifdef CONFIG_IP_ROUTE_MULTIPATH_CACHED
 	res->netmask = mask;
-	res->network = zone &
-		(0xFFFFFFFF >> (32 - prefixlen));
+	res->network = zone & inet_make_mask(prefixlen);
 #endif
 	atomic_inc(&res->fi->fib_clntref);
 	return 0;