Fix test for memory allocators that want to look backwards.
Summary: - The NeedleFinderTest.NoSegFault test uses mprotect(2) to ensure that our needle implementations don't peek past the end of memory. However, some memory allocators (e.g. the defaulton OS X) seem to look at the last byte of a page. As a result, if we allocate 2 pages and mark the second as PROT_NONE, then ask the memory allocator for 2 more pages, it may end up peeking at the last byte of the second page, triggering a SIGBUS. To work around this, allocate 8 pages of memory and only mark the second as PROT_NONE. - Clear mprotect(2) bits before freeing memory. Test Plan: - fbconfig -r folly && fbmake runtests - ./configure && make check on Ubuntu/FC/Mac Reviewed By: delong.j@fb.com FB internal diff: D998592
Showing
Please register or sign in to comment