]> granicus.if.org Git - libatomic_ops/commit
Mark unallocated/freed memory as inaccessible using ASan functionality
authorIvan Maidanski <ivmai@mail.ru>
Wed, 20 Dec 2017 07:11:54 +0000 (10:11 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 22 Dec 2017 07:46:25 +0000 (10:46 +0300)
commitcadb870ee38af6e4b6f61d9a1b104b8d3d517fac
tree8c9b2678e44b8c83759a8ee317cef85ea28fd815
parent339d403ce9175989b1cff8a3cf633b26626b77cd
Mark unallocated/freed memory as inaccessible using ASan functionality

Note: to disable it, AO_NO_MALLOC_POISON should be defined by client.

* src/atomic_ops_malloc.c [AO_ADDRESS_SANITIZER && !AO_NO_MALLOC_POISON]
(__asan_poison_memory_region, __asan_unpoison_memory_region): Prototype.
* src/atomic_ops_malloc.c (ASAN_POISON_MEMORY_REGION,
ASAN_UNPOISON_MEMORY_REGION): New macro.
* src/atomic_ops_malloc.c (add_chunk_as): Call
ASAN_POISON_MEMORY_REGION() for each pushed region.
* src/atomic_ops_malloc.c (AO_malloc): Call
ASAN_UNPOISON_MEMORY_REGION() for the returned memory region.
* src/atomic_ops_malloc.c (AO_free): Call ASAN_POISON_MEMORY_REGION()
before pushing the freed region to AO_free_list.
src/atomic_ops_malloc.c