Nicholas Nethercote e3f6e42966 Fixed bug 149878 (calloc overflow). This disables some of the calloc silly
arg checking, but that's no great loss.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10578
2009-07-24 06:41:02 +00:00

36 lines
746 B
C

/* test of plausible behaviour with malloc and stupid args */
#include <stdlib.h>
#include <stdio.h>
int main ( void )
{
char* p;
p = malloc(0);
printf("malloc(0) = 0x%lx\n", (unsigned long)p);
free(p);
p = malloc(-1);
printf("malloc(-1) = 0x%lx\n", (unsigned long)p);
free(p);
p = calloc(0,1);
printf("calloc(0,1) = 0x%lx\n", (unsigned long)p);
free(p);
p = calloc(0,-1);
printf("calloc(0,-1) = 0x%lx\n", (unsigned long)p);
free(p);
// We no longer get a warning with this due to the calloc overflow checking
// done for bug 149878. It's no great loss, it's extremely unlikely to
// occur in practice.
p = calloc(-1,-1);
printf("calloc(-1,-1) = 0x%lx\n", (unsigned long)p);
free(p);
return 0;
}