diff --git a/lib/libkvm/kvm_private.c b/lib/libkvm/kvm_private.c index d853d164310..a45f66caf2f 100644 --- a/lib/libkvm/kvm_private.c +++ b/lib/libkvm/kvm_private.c @@ -792,8 +792,8 @@ _kvm_bitmap_next(struct kvm_bitmap *bm, u_long *idx) /* 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; }