]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/test/test-bitmap.c
bitmap: fix bitmap_equal on bitmaps with unset bits
authorMartin Mikkelsen <mamikk@mamikk.no>
Fri, 31 Jul 2015 16:56:35 +0000 (18:56 +0200)
committerMartin Mikkelsen <mamikk@mamikk.no>
Fri, 31 Jul 2015 16:57:13 +0000 (18:57 +0200)
commitd5fa81995849cb263ecfcd0aa6ab661360d9213e
tree467f7d3a045a56d997e17b0a5a5ae69ce5c4cbac
parentaba8a9d1d26cc1cab2ebbeb3f1e557b5a6afdc6b
bitmap: fix bitmap_equal on bitmaps with unset bits

Given two bitmaps and the following code:

Bitmap *a = bitmap_new(), *b = bitmap_new();
bitmap_set(a, 0);
bitmap_unset(a, 0);

These two bitmaps should now have the same bits set and they should be
equal but bitmap_equal() will return false in this case because the
bitmaps array in a is larger because of the bit which was previously
set.

Fix this by comparing only the bits which exists in both bitmaps and
then check that the rest of the bits (if any) is all zero.

This also adds test code for this issue.
src/basic/bitmap.c
src/test/test-bitmap.c