diff options
author | David Timber <mieabby@gmail.com> | 2021-08-17 13:28:38 +1000 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2021-08-17 13:28:38 +1000 |
commit | 7ce01d9113856f94f90f3f6f144f351a69e333c5 (patch) | |
tree | 6b3e9dfcd5de109715b147c3c6bfc085bb30a78d /src/bitfield.c | |
parent | af9f23da9f3ce89353cf06878bf8ab49b405e331 (diff) |
Bitfield: assume bits out of range are unset
Diffstat (limited to 'src/bitfield.c')
-rw-r--r-- | src/bitfield.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/bitfield.c b/src/bitfield.c index cec0304..9a42926 100644 --- a/src/bitfield.c +++ b/src/bitfield.c @@ -13,11 +13,19 @@ void prne_bf_set (uint8_t *bf, const unsigned int bit, const bool v) { } } -bool prne_bf_test (const uint8_t *bf, const unsigned int bit) { +bool prne_bf_test ( + const uint8_t *bf, + const size_t size, + const unsigned int bit) +{ const unsigned int p = bit / 8; const unsigned int s = bit - p * 8; - return bf[p] & (1 << s); + if (size <= p) { + return false; + } + + return (bf[p] & (1 << s)) != 0; } void prne_bf_foreach ( |