There's an off by one error in the bag_remove code such that we end up
copying memory from beyond the end of the array into the array. Not a
serious problem since we have counters to prevent us from reading that
garbage, but AddressSanitizer complained so let's fix it.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
{
ASSERT(nr < bag->bg_inuse);
memmove(&bag->bg_ptrs[nr], &bag->bg_ptrs[nr + 1],
- (bag->bg_inuse - nr) * sizeof(void *));
+ (bag->bg_inuse - nr - 1) * sizeof(void *));
bag->bg_inuse--;
return 0;
}