[ASan] Enforce the memmove semantics for both memcpy() and memmove() interceptors on Darwin.
Due to bugs in the interposition of resolver functions on 10.7 and 10.8 both memcpy() and memmove() were previously intercepted by INTERCEPTOR(memcpy), which led to false positives and crashes (see http://llvm.org/bugs/show_bug.cgi?id=16362) We choose to use a memmove-like function in both cases. This effectively disables the overlap checks in memcpy(), but the overlaps aren't possible in practice, because memcpy() and memmove() are the same function on Darwin. Once the interposition is fixed in 10.9, we'll need to revisit this issue, see https://code.google.com/p/address-sanitizer/issues/detail?id=226 llvm-svn: 191081
Loading
Please register or sign in to comment