[compiler-rt] r238109 - [msan] Mprotect all inaccessible memory regions.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Tue May 26 11:07:29 PDT 2015


Thanks for bringing it up, fixed in r238226.

On Tue, May 26, 2015 at 8:21 AM, H.J. Lu <hjl.tools at gmail.com> wrote:
> On Sat, May 23, 2015 at 7:47 PM, Evgeniy Stepanov
> <eugeni.stepanov at gmail.com> wrote:
>> Author: eugenis
>> Date: Sat May 23 21:47:59 2015
>> New Revision: 238109
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=238109&view=rev
>> Log:
>> [msan] Mprotect all inaccessible memory regions.
>>
>> Fix 2 bugs in memory mapping setup:
>> - the invalid region at offset 0 was not protected because mmap at
>>   address 0 fails with EPERM on most Linux systems. We did not
>>   notice this because the check condition was flipped: the code was
>>   checking that mprotect has failed. And the test that was supposed
>>   to catch this was weakened by the mitigations in the mmap
>>   interceptor.
>> - when running without origins, the origin shadow range was left
>>   unprotected.
>>
>> The new test ensures that mmap w/o MAP_FIXED always returns valid
>> application addresses.
>>
>> Added:
>>     compiler-rt/trunk/test/msan/mmap.cc
>> Modified:
>>     compiler-rt/trunk/lib/msan/msan.cc
>>     compiler-rt/trunk/lib/msan/msan.h
>>     compiler-rt/trunk/lib/msan/msan_linux.cc
>>
>
> On Fedora 20/x86-64, I got
>
> Exit Code: 134
>
> Command Output (stdout):
> --
> 0xffffffffffffffff
> successful mappings: 0
>
> --
> Command Output (stderr):
> --
> mmap.cc.tmp: /export/gnu/import/git/llvm/projects/compiler-rt/test/msan/mmap.cc:41:
> int main(): Assertion `success_count > 5' failed.
> /export/build/gnu/llvm-clang-bootstrap-cmake/stage1/build-x86_64-linux/projects/compiler-rt/test/msan/Output/mmap.cc.script:
> line 2: 32283 Aborted
> /export/build/gnu/llvm-clang-bootstrap-cmake/stage1/build-x86_64-linux/projects/compiler-rt/test/msan/Output/mmap.cc.tmp
>
>
> --
> H.J.



More information about the llvm-commits mailing list