mirror of
https://github.com/ostreedev/ostree.git
synced 2025-02-07 05:57:58 +03:00
lib/bloom: Fix bloom hashing on 32-bit architectures
There was an implicit cast from guint64 to gsize (which is 32-bit on armhf, for example) before the modulus arithmetic which safely narrows the index. Fix that by using a guint64 intermediate variable and making the cast explicit. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1231 Approved by: cgwalters
This commit is contained in:
parent
4262a4b016
commit
1673601510
@ -273,11 +273,11 @@ ostree_bloom_maybe_contains (OstreeBloom *bloom,
|
||||
|
||||
for (i = 0; i < bloom->k; i++)
|
||||
{
|
||||
gsize idx;
|
||||
guint64 idx;
|
||||
|
||||
idx = bloom->hash_func (element, i);
|
||||
|
||||
if (!ostree_bloom_get_bit (bloom, idx % (bloom->n_bytes * 8)))
|
||||
if (!ostree_bloom_get_bit (bloom, (gsize) (idx % (bloom->n_bytes * 8))))
|
||||
return FALSE; /* definitely not in the set */
|
||||
}
|
||||
|
||||
@ -337,8 +337,8 @@ ostree_bloom_add_element (OstreeBloom *bloom,
|
||||
|
||||
for (i = 0; i < bloom->k; i++)
|
||||
{
|
||||
gsize idx = bloom->hash_func (element, i);
|
||||
ostree_bloom_set_bit (bloom, idx % (bloom->n_bytes * 8));
|
||||
guint64 idx = bloom->hash_func (element, i);
|
||||
ostree_bloom_set_bit (bloom, (gsize) (idx % (bloom->n_bytes * 8)));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user