Unpoison stack memory before deallocation
authorMarcus Holland-Moritz <mhx@fb.com>
Wed, 4 May 2016 10:28:44 +0000 (03:28 -0700)
committerFacebook Github Bot 4 <facebook-github-bot-4-bot@fb.com>
Wed, 4 May 2016 10:35:21 +0000 (03:35 -0700)
commit6959fbe7b9ac7591a51c4b15f5cb6b3df8ca8016
treeb97f22477e8888493fa840c97828cf148ba497a2
parent1c523f26df01d9f6c877a89fd330f2e4a1a69e5a
Unpoison stack memory before deallocation

Summary:
This is a workaround (maybe even the correct fix if it turns out that ASan
can't detect this FP case) for the problem described in

  https://llvm.org/bugs/show_bug.cgi?id=27627

where a memory region previously allocated by a fiber stack can overlap with
the region of an mmap'd file. Accessing parts of the mmap'd file close to
the stack region will trigger a false positive ASan error.

This change makes sure each fiber explicitly unpoisons its stack memory by
calling __asan_unpoison_memory_region in an ASan-enabled build.

Reviewed By: yhfung

Differential Revision: D3257924

fb-gh-sync-id: 484062e80af67dfd39d2eaf3cbb52fa3483924eb
fbshipit-source-id: 484062e80af67dfd39d2eaf3cbb52fa3483924eb
folly/experimental/fibers/Fiber.cpp
folly/experimental/fibers/FiberManager.cpp
folly/experimental/fibers/FiberManager.h