| #include <stdlib.h> |
| #include <stdio.h> |
| #include "pub_tool_basics.h" |
| |
| int main(void) |
| { |
| // The n*size multiplication overflows in this example. The only sensible |
| // thing to do is return NULL, but old versions of Valgrind didn't (they |
| // often ground to a halt trying to allocate an enormous (but not as |
| // enormous as asked-for!) block. See bug 149878. |
| int* x; |
| #if VG_WORDSIZE == 8 |
| size_t szB = 0x1000000010000001ULL; |
| #else |
| size_t szB = 0x10000001UL; |
| #endif |
| x = calloc(szB, 0x10); |
| fprintf(stderr, "x = %#lx\n", (long)x); |
| return 0; |
| } |