[PATCH] D16844: [asan] Improved support for swapcontext()

Paweł Dziepak via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 3 00:55:59 PST 2016


pdziepak created this revision.
pdziepak added a reviewer: kcc.
pdziepak added a subscriber: llvm-commits.

These changess improve ASan support for swapcontext() and friends mainly
focusing on eliminating false positives caused by throwing and catching
exceptions when on a custom user stack.

This is achieved by:
1. Making swapcontext() and getcontext() fill ucontext_t::uc_stack with proper
values.
2. Adding ability to AsanThread to change current stack (in an async-safe way).

Some of the things that are still not fully supported:
 - swapcontext() and fake stacks
 - changing context from signal handlers
 - changing context using longjmp()
 - final context change via ucontext_t::uc_link

http://reviews.llvm.org/D16844

Files:
  lib/asan/asan_interceptors.cc
  lib/asan/asan_internal.h
  lib/asan/asan_linux.cc
  lib/asan/asan_mac.cc
  lib/asan/asan_thread.cc
  lib/asan/asan_thread.h
  lib/asan/asan_win.cc
  test/asan/TestCases/Linux/swapcontext_test.cc
  test/lsan/TestCases/swapcontext.cc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16844.46753.patch
Type: text/x-patch
Size: 10113 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160203/350aaf5a/attachment.bin>


More information about the llvm-commits mailing list