Skip to content
Commit 7a078d2d authored by Ian Rogers's avatar Ian Rogers Committed by Daniel Borkmann
Browse files

libbpf, hashmap: Fix undefined behavior in hash_bits

If bits is 0, the case when the map is empty, then the >> is the size of
the register which is undefined behavior - on x86 it is the same as a
shift by 0.

Fix by handling the 0 case explicitly and guarding calls to hash_bits for
empty maps in hashmap__for_each_key_entry and hashmap__for_each_entry_safe.

Fixes: e3b92422

 ("libbpf: add resizable non-thread safe internal hashmap")
Suggested-by: default avatarAndrii Nakryiko <andriin@fb.com&gt;,>
Signed-off-by: default avatarIan Rogers <irogers@google.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201029223707.494059-1-irogers@google.com
parent 080b6f40
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment