Message ID | Yw90nHF82AyG35Mk@kili (mailing list archive) |
---|---|
State | Accepted |
Commit | e2b224abd9bf45dcb55750479fc35970725a430b |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] tipc: fix shift wrapping bug in map_get() | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Wed, 31 Aug 2022 17:47:56 +0300 you wrote: > There is a shift wrapping bug in this code so anything thing above > 31 will return false. > > Fixes: 35c55c9877f8 ("tipc: add neighbor monitoring framework") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > I have no idea why I didn't fix this back in 2016 when I fixed map_set(). > > [...] Here is the summary with links: - [net] tipc: fix shift wrapping bug in map_get() https://git.kernel.org/netdev/net/c/e2b224abd9bf You are awesome, thank you!
diff --git a/net/tipc/monitor.c b/net/tipc/monitor.c index 2f4d23238a7e..9618e4429f0f 100644 --- a/net/tipc/monitor.c +++ b/net/tipc/monitor.c @@ -160,7 +160,7 @@ static void map_set(u64 *up_map, int i, unsigned int v) static int map_get(u64 up_map, int i) { - return (up_map & (1 << i)) >> i; + return (up_map & (1ULL << i)) >> i; } static struct tipc_peer *peer_prev(struct tipc_peer *peer)
There is a shift wrapping bug in this code so anything thing above 31 will return false. Fixes: 35c55c9877f8 ("tipc: add neighbor monitoring framework") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- I have no idea why I didn't fix this back in 2016 when I fixed map_set(). net/tipc/monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)