1 2 /* test of plausible behaviour with malloc and stupid args */ 3 4 #include <stdlib.h> 5 #include <stdio.h> 6 7 int main ( void ) 8 { 9 char* p; 10 11 p = malloc(0); 12 printf("malloc(0) = 0x%lx\n", (unsigned long)p); 13 free(p); 14 15 p = malloc(-1); 16 printf("malloc(-1) = 0x%lx\n", (unsigned long)p); 17 free(p); 18 19 p = calloc(0,1); 20 printf("calloc(0,1) = 0x%lx\n", (unsigned long)p); 21 free(p); 22 23 p = calloc(0,-1); 24 printf("calloc(0,-1) = 0x%lx\n", (unsigned long)p); 25 free(p); 26 27 // We no longer get a warning with this due to the calloc overflow checking 28 // done for bug 149878. It's no great loss, it's extremely unlikely to 29 // occur in practice. 30 p = calloc(-1,-1); 31 printf("calloc(-1,-1) = 0x%lx\n", (unsigned long)p); 32 free(p); 33 34 return 0; 35 } 36