Re: [PATCH v2] libbpf hashmap: Fix undefined behavior in hash_bits

2020-10-29 Thread Song Liu
> On Oct 29, 2020, at 3:38 PM, Andrii Nakryiko > wrote: > > On Thu, Oct 29, 2020 at 3:38 PM Ian Rogers wrote: >> >> 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 handlin

Re: [PATCH v2] libbpf hashmap: Fix undefined behavior in hash_bits

2020-10-29 Thread Andrii Nakryiko
On Thu, Oct 29, 2020 at 3:38 PM Ian Rogers wrote: > > 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 map

[PATCH v2] libbpf hashmap: Fix undefined behavior in hash_bits

2020-10-29 Thread Ian Rogers
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_