提交 50427443 编写于 作者: D Dan Carpenter 提交者: Jialin Zhang

tipc: fix shift wrapping bug in map_get()

stable inclusion
from stable-v5.10.143
commit 22922da7373c38c91dd36de993589b81a4129178
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I6D0U6

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=22922da7373c38c91dd36de993589b81a4129178

--------------------------------

[ Upstream commit e2b224ab ]

There is a shift wrapping bug in this code so anything thing above
31 will return false.

Fixes: 35c55c98 ("tipc: add neighbor monitoring framework")
Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NJialin Zhang <zhangjialin11@huawei.com>
Reviewed-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 c775abc9
...@@ -130,7 +130,7 @@ static void map_set(u64 *up_map, int i, unsigned int v) ...@@ -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) 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) static struct tipc_peer *peer_prev(struct tipc_peer *peer)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册