[compiler-rt] r179286 - [asan] make heavy_uar_test a bit more heavy and fix he fake stack to pass this test

Kostya Serebryany kcc at google.com
Thu Apr 11 08:37:43 PDT 2013


weird. the test passed for me locally before commit. Now it fails locally
too...
Anyway, I tried to fix it at r179292.
Thanks!


On Thu, Apr 11, 2013 at 7:01 PM, Alexey Samsonov <samsonov at google.com>wrote:

> Our bots bark on this:
> ==2427==AddressSanitizer CHECK failed:
> build/llvm/projects/compiler-rt/lib/asan/asan_fake_stack.h:46
> "((n_frames_)) < ((kMaxNumberOfFrames))" (0x3ff, 0x3ff)
>
>
>
> On Thu, Apr 11, 2013 at 6:07 PM, Kostya Serebryany <kcc at google.com> wrote:
>
>> Author: kcc
>> Date: Thu Apr 11 09:07:02 2013
>> New Revision: 179286
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=179286&view=rev
>> Log:
>> [asan] make heavy_uar_test a bit more heavy and fix he fake stack to pass
>> this test
>>
>> Modified:
>>     compiler-rt/trunk/lib/asan/asan_fake_stack.h
>>     compiler-rt/trunk/lib/asan/lit_tests/Linux/heavy_uar_test.cc
>>
>> Modified: compiler-rt/trunk/lib/asan/asan_fake_stack.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_fake_stack.h?rev=179286&r1=179285&r2=179286&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/asan/asan_fake_stack.h (original)
>> +++ compiler-rt/trunk/lib/asan/asan_fake_stack.h Thu Apr 11 09:07:02 2013
>> @@ -53,7 +53,7 @@ class FakeFrameLifo {
>>    FakeFrame *top() {
>>      if (n_frames_ == 0)
>>        return 0;
>> -    return frames_[n_frames_];
>> +    return frames_[n_frames_ - 1];
>>    }
>>   private:
>>    uptr n_frames_;
>>
>> Modified: compiler-rt/trunk/lib/asan/lit_tests/Linux/heavy_uar_test.cc
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/Linux/heavy_uar_test.cc?rev=179286&r1=179285&r2=179286&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/asan/lit_tests/Linux/heavy_uar_test.cc
>> (original)
>> +++ compiler-rt/trunk/lib/asan/lit_tests/Linux/heavy_uar_test.cc Thu Apr
>> 11 09:07:02 2013
>> @@ -7,6 +7,7 @@
>>
>>  #include <stdio.h>
>>  #include <string.h>
>> +#include <stdlib.h>
>>
>>  __attribute__((noinline))
>>  inline char *pretend_to_do_something(char *x) {
>> @@ -24,7 +25,7 @@ char *LeakStack() {
>>  __attribute__((noinline))
>>  void RecuriveFunctionWithStackFrame(int depth) {
>>    if (depth <= 0) return;
>> -  char x[1000];
>> +  char x[1024];
>>    memset(x, 0, sizeof(x));
>>    pretend_to_do_something(x);
>>    RecuriveFunctionWithStackFrame(depth - 1);
>> @@ -33,9 +34,11 @@ void RecuriveFunctionWithStackFrame(int
>>
>>  int main(int argc, char **argv) {
>>    char *stale_stack = LeakStack();
>> -  RecuriveFunctionWithStackFrame(10);
>> -  RecuriveFunctionWithStackFrame(20);
>> -  RecuriveFunctionWithStackFrame(30);
>> +  int n_iter = argc >= 2 ? atoi(argv[1]) : 1000;
>> +  int depth  = argc >= 3 ? atoi(argv[2]) : 1000;
>> +  for (int i = 0; i < n_iter; i++) {
>> +    RecuriveFunctionWithStackFrame(depth);
>> +  }
>>    stale_stack[100]++;
>>    // CHECK: ERROR: AddressSanitizer: stack-use-after-return on address
>>    // CHECK: is located in stack of thread T0 at offset 132 in frame
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
>
> --
> Alexey Samsonov, MSK
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130411/24e61fa2/attachment.html>


More information about the llvm-commits mailing list