diff options
author | Ian Rogers <[email protected]> | 2020-10-29 15:37:07 -0700 |
---|---|---|
committer | Daniel Borkmann <[email protected]> | 2020-11-02 23:33:51 +0100 |
commit | 7a078d2d18801bba7bde7337a823d7342299acf7 (patch) | |
tree | c07d900a1d0fb7c88fdcbf9554083169f53f742d /net/lapb/lapb_out.c | |
parent | 080b6f40763565f65ebb9540219c71ce885cf568 (diff) |
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: e3b924224028 ("libbpf: add resizable non-thread safe internal hashmap")
Suggested-by: Andrii Nakryiko <[email protected]>,
Signed-off-by: Ian Rogers <[email protected]>
Signed-off-by: Daniel Borkmann <[email protected]>
Acked-by: Andrii Nakryiko <[email protected]>
Acked-by: Song Liu <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
Diffstat (limited to 'net/lapb/lapb_out.c')
0 files changed, 0 insertions, 0 deletions