https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85389
Bug ID: 85389 Summary: posix_memalign() crash with address sanitizer when passing invalid arguments Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: gabriel.ganne at mindmaze dot ch CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Created attachment 43924 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43924&action=edit posix_memalign() test Hi, exact gcc version is : gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 The attached file tests posix_memalign() with an invalid alignment of 1. The expected behavior is for posix_memalign() to return EINVAL and to leave memptr untouched, or to set it to NULL. This works as expected *without* address sanitizer, but fails when enabled : $ gcc posix-memalign.c ; ./a.out rv = 22 ptr = 0xffffffffffffffff $ gcc -fsanitize=address posix-memalign.c && ./a.out ASAN:DEADLYSIGNAL ================================================================= ==2682==ERROR: AddressSanitizer: SEGV on unknown address 0xffffffffffffffff (pc 0x7f16dbe25fb3 bp 0xffffffffffffffff sp 0x7ffc4a3c0150 T0) #0 0x7f16dbe25fb2 (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x23fb2) #1 0x7f16dbec473d in posix_memalign (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc273d) #2 0x5625796e7bd5 in main (/tmp/posix_memalign/a.out+0xbd5) #3 0x7f16dba832e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0) #4 0x5625796e7aa9 in _start (/tmp/posix_memalign/a.out+0xaa9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x23fb2) ==2682==ABORTING