diff options
Diffstat (limited to 'compiler-rt/test/hwasan/TestCases/random-align-right.c')
-rw-r--r-- | compiler-rt/test/hwasan/TestCases/random-align-right.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/compiler-rt/test/hwasan/TestCases/random-align-right.c b/compiler-rt/test/hwasan/TestCases/random-align-right.c index 8c524ef4784..e6e634179b8 100644 --- a/compiler-rt/test/hwasan/TestCases/random-align-right.c +++ b/compiler-rt/test/hwasan/TestCases/random-align-right.c @@ -1,9 +1,11 @@ // Tests malloc_align_right=1 and 8 (randomly aligning right). // RUN: %clang_hwasan %s -o %t // -// RUN: %run %t -// RUN: %env_hwasan_opts=malloc_align_right=1 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK1 -// RUN: %env_hwasan_opts=malloc_align_right=8 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK8 +// RUN: %run %t 20 +// RUN: %run %t 30 +// RUN: %env_hwasan_opts=malloc_align_right=1 not %run %t 20 2>&1 | FileCheck %s --check-prefix=CHECK20 +// RUN: %env_hwasan_opts=malloc_align_right=1 not %run %t 30 2>&1 | FileCheck %s --check-prefix=CHECK30 +// RUN: %env_hwasan_opts=malloc_align_right=8 not %run %t 30 2>&1 | FileCheck %s --check-prefix=CHECK30 // REQUIRES: stable-runtime @@ -15,6 +17,7 @@ static volatile void *sink; int main(int argc, char **argv) { __hwasan_enable_allocator_tagging(); + int index = atoi(argv[1]); // Perform 1000 buffer overflows within the 16-byte granule, // so that random right-alignment has a very high chance of @@ -22,14 +25,11 @@ int main(int argc, char **argv) { for (int i = 0; i < 1000; i++) { char *p = (char*)malloc(20); sink = p; - fprintf(stderr, "[%d] p: %p; accessing p[20]:\n", i, p); - p[20 * argc] = 0; // requires malloc_align_right=1 to catch - fprintf(stderr, "[%d] p: %p; accessing p[30]:\n", i, p); - p[30 * argc] = 0; // requires malloc_align_right={1,8} to catch -// CHECK1: accessing p[20] -// CHECK1-NEXT: HWAddressSanitizer: tag-mismatch -// CHECK8: accessing p[30]: -// CHECK8-NEXT: HWAddressSanitizer: tag-mismatch + p[index] = 0; +// index=20 requires malloc_align_right=1 to catch +// CHECK20: HWAddressSanitizer: tag-mismatch +// index=30 requires malloc_align_right={1,8} to catch +// CHECK30: HWAddressSanitizer: tag-mismatch } } |