Andrii Nakryiko 3c7256b880 bpf: fix potential 32-bit overflow when accessing ARRAY map element
[ Upstream commit 87ac0d600943994444e24382a87aa19acc4cd3d4 ]

If BPF array map is bigger than 4GB, element pointer calculation can
overflow because both index and elem_size are u32. Fix this everywhere
by forcing 64-bit multiplication. Extract this formula into separate
small helper and use it consistently in various places.

Speculative-preventing formula utilizing index_mask trick is left as is,
but explicit u64 casts are added in both places.

Fixes: c85d69135a91 ("bpf: move memory size checks to bpf_map_charge_init()")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20220715053146.1291891-2-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-17 15:14:51 +02:00
..
2022-05-26 17:13:43 -07:00
2022-05-25 16:18:27 -07:00
2021-12-02 17:25:21 +09:00
2022-05-25 11:32:53 -07:00
2022-06-02 08:55:01 -07:00
2022-01-11 13:08:21 -08:00
2022-06-15 19:28:44 -04:00
2022-05-23 17:51:12 -07:00
2022-03-15 10:32:44 +01:00
2022-05-29 10:31:36 -07:00
2022-01-08 12:43:57 -06:00
2022-05-24 11:11:13 -07:00
2022-02-25 09:36:06 +01:00
2022-07-15 09:52:35 -07:00