57 lines
1.5 KiB
Diff
57 lines
1.5 KiB
Diff
Description: Fixes Debian Bug #632632.
|
|
Author: Guus Sliepen <guus@debian.org>
|
|
--- a/src/bitops.c
|
|
+++ b/src/bitops.c
|
|
@@ -80,7 +80,7 @@ bit_t aal_find_next_zero_bit(const void *map,
|
|
bit_t size,
|
|
bit_t offset)
|
|
{
|
|
- int bit = offset & 7, res;
|
|
+ bit_t bit = offset & 7, res;
|
|
unsigned char *addr = map;
|
|
unsigned char *p = addr + (offset >> 3);
|
|
|
|
@@ -100,7 +100,7 @@ bit_t aal_find_next_zero_bit(const void *map,
|
|
|
|
/* Finds zero bit in @byte starting from @offset */
|
|
static inline int aal_find_nzb(unsigned char byte, bit_t offset) {
|
|
- int i = offset;
|
|
+ bit_t i = offset;
|
|
unsigned char mask = 1 << offset;
|
|
|
|
while ((byte & mask) != 0) {
|
|
@@ -119,9 +119,9 @@ bit_t aal_find_next_set_bit(const void *map,
|
|
bit_t offset)
|
|
{
|
|
unsigned char *addr = map;
|
|
- unsigned int byte_nr = offset >> 3;
|
|
- unsigned int bit_nr = offset & 0x7;
|
|
- unsigned int max_byte_nr = (size - 1) >> 3;
|
|
+ bit_t byte_nr = offset >> 3;
|
|
+ bit_t bit_nr = offset & 0x7;
|
|
+ bit_t max_byte_nr = (size - 1) >> 3;
|
|
|
|
if (bit_nr != 0) {
|
|
unsigned int b = ~(unsigned int)addr[byte_nr];
|
|
@@ -152,8 +152,8 @@ errno_t aal_set_bits(void *map,
|
|
bit_t start,
|
|
bit_t count)
|
|
{
|
|
- int end_byte;
|
|
- int start_byte;
|
|
+ bit_t end_byte;
|
|
+ bit_t start_byte;
|
|
char *addr = map;
|
|
bit_t left, right;
|
|
|
|
@@ -185,8 +185,8 @@ errno_t aal_clear_bits(void *map,
|
|
bit_t start,
|
|
bit_t count)
|
|
{
|
|
- int end_byte;
|
|
- int start_byte;
|
|
+ bit_t end_byte;
|
|
+ bit_t start_byte;
|
|
char *addr = map;
|
|
bit_t left, right;
|