File: clo_redzone.c

package info (click to toggle)
valgrind 1%3A3.12.0~svn20160714-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 120,428 kB
  • ctags: 70,855
  • sloc: ansic: 674,645; exp: 26,134; xml: 21,574; asm: 7,570; cpp: 7,567; makefile: 7,380; sh: 6,188; perl: 5,855; haskell: 195
file content (19 lines) | stat: -rw-r--r-- 549 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
   __attribute__((unused)) char *p = malloc (1);
   char *b1 = malloc (128);
   char *b2 = malloc (128);
   fprintf (stderr, "b1 %#" PRIxPTR " b2 %#" PRIxPTR "\n",
                    (uintptr_t)b1, (uintptr_t)b2);

   // Try to land in b2 from b1, causing no error
   // with the default redzone-size, but having
   // an error with a bigger redzone-size.
   // We need to choose a value which lands in b2
   // on 32 bits and 64 bits.
   b1[127 + 70] = 'a';
   return 0;
}