GNU bug report logs -
#19784
build fails on make-prime-list when asan is enabled
Previous Next
Full log
Message #13 received at 19784 <at> debbugs.gnu.org (full text, mbox):
On 02/05/2015 09:06 PM, Pádraig Brady wrote:
> On 05/02/15 15:21, Yury Usishchev wrote:
>> Hello!
>>
>> We tried to build coreutils with address sanitizer enabled and
>> encountered an error:
>>
>> GEN src/primes.h
>> ==12657== ERROR: AddressSanitizer: heap-buffer-overflow
>>
>> This can be reproduced on git master using gcc-4.8 or gcc-4.9 by
>> git clone
>> export CFLAGS="-fsanitize=address"
>> ./bootstrap
>> ./configure
>> make
>>
>> and is caused by line
>> src/make-prime-list.c:214: while (i < size && sieve[++i] == 0)
>>
>> When 'i' reaches 'size-1' it gets incremented and then
>> (unallocated)memory is accessed.
>>
>> I attached patch that can fix this issue.
> Oh nice one. That was not rerun when I ran my checks.
> The released tools (still) pass with -fsanitize=address.
>
> How about this fix instead? I'll push in your name if
> you're ok with it.
>
> diff --git a/src/make-prime-list.c b/src/make-prime-list.c
> index 68c972a..69b91e8 100644
> --- a/src/make-prime-list.c
> +++ b/src/make-prime-list.c
> @@ -211,7 +211,7 @@ main (int argc, char **argv)
> for (j = (p*p - 3)/2; j < size; j+= p)
> sieve[j] = 0;
>
> - while (i < size && sieve[++i] == 0)
> + while (++i < size && sieve[i] == 0)
> ;
> }
Thank you for quick reply.
Yes, this patch looks much better.
--
BR,
Yury Usishchev
This bug report was last modified 10 years and 169 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.