[MSan] Move the access address check before the shadow access for that address
authorAlexander Potapenko <glider@google.com>
Thu, 23 Nov 2017 08:34:32 +0000 (08:34 +0000)
committerAlexander Potapenko <glider@google.com>
Thu, 23 Nov 2017 08:34:32 +0000 (08:34 +0000)
commit391804f54b2a98f163b685ee72f8f890c8094405
tree9fac7da72c0555c8dc42747eff42263be9d2c933
parent270ced2bce385d69fa16d16a3bfc90eb90ab396d
[MSan] Move the access address check before the shadow access for that address

MSan used to insert the shadow check of the store pointer operand
_after_ the shadow of the value operand has been written.
This happens to work in the userspace, as the whole shadow range is
always mapped. However in the kernel the shadow page may not exist, so
the bug may cause a crash.

This patch moves the address check in front of the shadow access.

llvm-svn: 318901
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
llvm/test/Instrumentation/MemorySanitizer/check_access_address.ll