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

From: Song Liu
Date: Thu Oct 29 2020 - 18:58:04 EST




> On Oct 29, 2020, at 3:38 PM, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote:
>
> On Thu, Oct 29, 2020 at 3:38 PM Ian Rogers <irogers@xxxxxxxxxx> 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 maps in hashmap__for_each_key_entry and
>> hashmap__for_each_entry_safe.
>>
>> Suggested-by: Andrii Nakryiko <andriin@xxxxxx>,
>> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
>> ---
>
> Looks good. Thanks and sorry for unnecessary iterations.
>
> Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>

Acked-by: Song Liu <songliubraving@xxxxxx>