[PATCH] D12490: [asan] Intercept and wrap XPC callback blocks

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 31 02:33:03 PDT 2015


kubabrecka created this revision.
kubabrecka added reviewers: samsonov, glider.
kubabrecka added subscribers: llvm-commits, samsonov, glider, kcc, zaks.anna.

On recent OS X systems, blocks used as callbacks for XPC events (set up e.g. via `xpc_connection_set_event_handler`) are not later executed via the public libdispatch API (`dispatch_async`, etc).  Because we don't intercept the path where the block is executed, we can fail to register the newly created dispatch thread.  To fix that, let's intercept libxpc's APIs that take a block as a callback handler, and let's wrap these blocks in the same way as we do for libdispatch API.


http://reviews.llvm.org/D12490

Files:
  lib/asan/asan_mac.cc
  test/asan/TestCases/Darwin/xpc_interceptors.mm

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12490.33562.patch
Type: text/x-patch
Size: 3751 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150831/0f3d305b/attachment.bin>


More information about the llvm-commits mailing list