Most certainly the access to global_array[200] ends up touching a
valid location in g[], and the access to g[200] lands somewhere in a
region that has a shadow value of 0.
Unfortunately ASan can only detect a buffer overflow if the memory
access touches unaddressable memory (i.e. that with non-zero shadow).

On Tue, May 2, 2017 at 2:09 PM, Aayushi Agrawal <aayushigr...@gmail.com> wrote:
> Hello
>
> Here is code snippet  -
>
> int global_array[101] = {-1};
> char g[101] = {-2};
>
> int main(int argc, char **argv) {
>   global_array[atoi(argv[1])] = 70;
>   g[atoi(argv[1])] = 'c';
>
> }
>
> If I compile it with clang , address sanitizer and no other flags used then
> for input as "101" it gives ASAN buffer overflow message but input as "200"
> does not show any buffer overflow why ?
>
>
> Aayushi
>
> --
> You received this message because you are subscribed to the Google Groups
> "address-sanitizer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to address-sanitizer+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to address-sanitizer+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to