"Kyle J. McKay" <mack...@gmail.com> writes:
> So I was trying to use pack.writebitmaps=true and all I got was core dumps.
> The fix with a real subject line ;) is below. I think perhaps this should be
> picked up for the 2.0.0 release. (Patch is against master.)
Of course---a breakage in a new code may be less important than a
regression fix in the sense that there is an option not to use the
new feature, but an obvious fix to such a breakage is certainly very
much welcomed during the -rc period.
Thanks. I'll try not to forget until tomorrow's integration cycle
(I just finished and pushed the results out for today), which will
also give me a chance to wait for Peff's Ack ;-).
> ---- >8 ----
> Subject: [PATCH] ewah_bitmap.c: do not assume size_t and eword_t are the same
> When buffer_grow changes the size of the buffer using realloc,
> it first computes and saves the rlw pointer's offset into the
> buffer using (uint8_t *) math before the realloc but then
> restores it using (eword_t *) math.
> In order to do this it's necessary to convert the (uint8_t *)
> offset into an (eword_t *) offset. It was doing this by
> dividing by the sizeof(size_t). Unfortunately sizeof(size_t)
> is not same as sizeof(eword_t) on all platforms.
> This causes illegal memory accesses and other bad things to
> happen when attempting to use bitmaps on those platforms.
> Fix this by dividing by the sizeof(eword_t) instead which
> will always be correct for all platforms.
> Signed-off-by: Kyle J. McKay <mack...@gmail.com>
> ewah/ewah_bitmap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/ewah/ewah_bitmap.c b/ewah/ewah_bitmap.c
> index 9ced2dad..fccb42b5 100644
> --- a/ewah/ewah_bitmap.c
> +++ b/ewah/ewah_bitmap.c
> @@ -41,7 +41,7 @@ static inline void buffer_grow(struct ewah_bitmap *self,
> size_t new_size)
> self->alloc_size = new_size;
> self->buffer = ewah_realloc(self->buffer,
> self->alloc_size * sizeof(eword_t));
> - self->rlw = self->buffer + (rlw_offset / sizeof(size_t));
> + self->rlw = self->buffer + (rlw_offset / sizeof(eword_t));
> static inline void buffer_push(struct ewah_bitmap *self, eword_t value)
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html