diff --git a/lib/libkvm/kvm_private.c b/lib/libkvm/kvm_private.c --- a/lib/libkvm/kvm_private.c +++ b/lib/libkvm/kvm_private.c @@ -792,8 +792,8 @@ /* Find the next valid idx. */ for (; *idx < first_invalid; (*idx)++) { - unsigned int mask = *idx % CHAR_BIT; - if ((bm->map[*idx * CHAR_BIT] & mask) == 0) + unsigned int mask = 1U << (*idx % CHAR_BIT); + if ((bm->map[*idx / CHAR_BIT] & mask) != 0) break; }