[compiler-rt] r242651 - asan: fix a test

Hans Wennborg hans at chromium.org
Tue Jul 21 15:47:07 PDT 2015


Merged in r242848.

Thanks,
Hans

On Tue, Jul 21, 2015 at 2:56 PM, Evgenii Stepanov <eugenis at google.com> wrote:
> Sure. It looks like it fixes the test, and it definitely does not
> break anything else.
>
>
> On Tue, Jul 21, 2015 at 2:43 PM, Hans Wennborg <hans at chromium.org> wrote:
>> Do you think we should merge this and r242647 to 3.7? This test fails
>> for me sometimes on the branch.
>>
>> On Sun, Jul 19, 2015 at 2:44 PM, Dmitry Vyukov <dvyukov at google.com> wrote:
>>> Author: dvyukov
>>> Date: Sun Jul 19 16:44:49 2015
>>> New Revision: 242651
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=242651&view=rev
>>> Log:
>>> asan: fix a test
>>>
>>> Page size is not necessary 4096.
>>> Use sysconf to obtain page size.
>>>
>>>
>>> Modified:
>>>     compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
>>>
>>> Modified: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
>>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc?rev=242651&r1=242650&r2=242651&view=diff
>>> ==============================================================================
>>> --- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc (original)
>>> +++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc Sun Jul 19 16:44:49 2015
>>> @@ -18,24 +18,27 @@
>>>  #include <signal.h>
>>>  #include <sys/mman.h>
>>>  #include <string.h>
>>> +#include <unistd.h>
>>>
>>> +unsigned long page_size;
>>>  void *guard;
>>>
>>>  void handler(int signo, siginfo_t *info, void *uctx) {
>>> -  mprotect(guard, 4096, PROT_READ | PROT_WRITE);
>>> +  mprotect(guard, page_size, PROT_READ | PROT_WRITE);
>>>  }
>>>
>>>  int main() {
>>> +  page_size = sysconf(_SC_PAGESIZE);
>>>    struct sigaction a, old;
>>>    memset(&a, 0, sizeof(a));
>>>    memset(&old, 0, sizeof(old));
>>>    a.sa_sigaction = handler;
>>>    a.sa_flags = SA_SIGINFO;
>>>    sigaction(SIGSEGV, &a, &old);
>>> -  guard = (char *)mmap(0, 3 * 4096, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0) +
>>> -          4096;
>>> +  guard = mmap(0, 3 * page_size, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
>>> +  guard = (char*)guard + page_size;  // work around a kernel bug
>>>    for (int i = 0; i < 1000000; i++) {
>>> -    mprotect(guard, 4096, PROT_NONE);
>>> +    mprotect(guard, page_size, PROT_NONE);
>>>      *(int*)guard = 1;
>>>    }
>>>    sigaction(SIGSEGV, &old, 0);
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list