]> 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:32:05 +0000 (11:32 +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 a37190da5a504878d2fbda8f6b11bbe0e84760a8..1d90f39129ca0760e974d2c603927d016c7fe935 100644 (file)
@@ -130,7 +130,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)