]> git.itanic.dy.fi Git - linux-stable/commitdiff
tipc: fix shift wrapping bug in map_get()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 31 Aug 2022 14:47:56 +0000 (17:47 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 09:30:05 +0000 (11:30 +0200)
[ Upstream commit e2b224abd9bf45dcb55750479fc35970725a430b ]

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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/tipc/monitor.c

index 2f4d23238a7e33a6ff22e87fca6ee0281040b338..9618e4429f0fe848d2dce8b2e5b4ba0e46a52b1c 100644 (file)
@@ -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)