|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] tools/libs/light: correct bitmap operations
Libxl bitmap operations for single bits (test, set, reset) take the bit
number as a signed integer without testing the value to be larger than
0.
Correct that by adding the appropriate tests.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
tools/libs/light/libxl_utils.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_utils.c
index b039143b8a..4699c4a0a3 100644
--- a/tools/libs/light/libxl_utils.c
+++ b/tools/libs/light/libxl_utils.c
@@ -688,21 +688,21 @@ int libxl_bitmap_is_empty(const libxl_bitmap *bitmap)
int libxl_bitmap_test(const libxl_bitmap *bitmap, int bit)
{
- if (bit >= bitmap->size * 8)
+ if (bit >= bitmap->size * 8 || bit < 0)
return 0;
return (bitmap->map[bit / 8] & (1 << (bit & 7))) ? 1 : 0;
}
void libxl_bitmap_set(libxl_bitmap *bitmap, int bit)
{
- if (bit >= bitmap->size * 8)
+ if (bit >= bitmap->size * 8 || bit < 0)
return;
bitmap->map[bit / 8] |= 1 << (bit & 7);
}
void libxl_bitmap_reset(libxl_bitmap *bitmap, int bit)
{
- if (bit >= bitmap->size * 8)
+ if (bit >= bitmap->size * 8 || bit < 0)
return;
bitmap->map[bit / 8] &= ~(1 << (bit & 7));
}
--
2.26.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |