xref: /aosp_15_r20/external/compiler-rt/test/asan/TestCases/heap-overflow-large.cc (revision 7c3d14c8b49c529e04be81a3ce6f5cc23712e4c6)
1*7c3d14c8STreehugger Robot // Regression test for
2*7c3d14c8STreehugger Robot // https://code.google.com/p/address-sanitizer/issues/detail?id=183
3*7c3d14c8STreehugger Robot 
4*7c3d14c8STreehugger Robot // RUN: %clangxx_asan -O2 %s -o %t
5*7c3d14c8STreehugger Robot // RUN: not %run %t 12 2>&1 | FileCheck %s
6*7c3d14c8STreehugger Robot // RUN: not %run %t 100 2>&1 | FileCheck %s
7*7c3d14c8STreehugger Robot // RUN: not %run %t 10000 2>&1 | FileCheck %s
8*7c3d14c8STreehugger Robot 
9*7c3d14c8STreehugger Robot #include <stdlib.h>
10*7c3d14c8STreehugger Robot #include <string.h>
11*7c3d14c8STreehugger Robot #include <stdio.h>
12*7c3d14c8STreehugger Robot 
main(int argc,char * argv[])13*7c3d14c8STreehugger Robot int main(int argc, char *argv[]) {
14*7c3d14c8STreehugger Robot   fprintf(stderr, "main\n");
15*7c3d14c8STreehugger Robot   int *x = new int[5];
16*7c3d14c8STreehugger Robot   memset(x, 0, sizeof(x[0]) * 5);
17*7c3d14c8STreehugger Robot   int index = atoi(argv[1]);
18*7c3d14c8STreehugger Robot   unsigned res = x[index];
19*7c3d14c8STreehugger Robot   // CHECK: main
20*7c3d14c8STreehugger Robot   // CHECK-NOT: CHECK failed
21*7c3d14c8STreehugger Robot   delete[] x;
22*7c3d14c8STreehugger Robot   return (res % 10) + 1;
23*7c3d14c8STreehugger Robot }
24