13059442f143f00f351c6cbc7f0119af65a6f652bsewardj 23059442f143f00f351c6cbc7f0119af65a6f652bsewardj/* test of plausible behaviour with malloc and stupid args */ 33059442f143f00f351c6cbc7f0119af65a6f652bsewardj 43059442f143f00f351c6cbc7f0119af65a6f652bsewardj#include <stdlib.h> 53059442f143f00f351c6cbc7f0119af65a6f652bsewardj#include <stdio.h> 63059442f143f00f351c6cbc7f0119af65a6f652bsewardj 73059442f143f00f351c6cbc7f0119af65a6f652bsewardjint main ( void ) 83059442f143f00f351c6cbc7f0119af65a6f652bsewardj{ 93059442f143f00f351c6cbc7f0119af65a6f652bsewardj char* p; 103059442f143f00f351c6cbc7f0119af65a6f652bsewardj 113059442f143f00f351c6cbc7f0119af65a6f652bsewardj p = malloc(0); 12aed053675acc9fb4fcbe7bc38c1120317bad68fasewardj printf("malloc(0) = 0x%lx\n", (unsigned long)p); 133059442f143f00f351c6cbc7f0119af65a6f652bsewardj free(p); 143059442f143f00f351c6cbc7f0119af65a6f652bsewardj 153059442f143f00f351c6cbc7f0119af65a6f652bsewardj p = malloc(-1); 16aed053675acc9fb4fcbe7bc38c1120317bad68fasewardj printf("malloc(-1) = 0x%lx\n", (unsigned long)p); 173059442f143f00f351c6cbc7f0119af65a6f652bsewardj free(p); 183059442f143f00f351c6cbc7f0119af65a6f652bsewardj 193059442f143f00f351c6cbc7f0119af65a6f652bsewardj p = calloc(0,1); 20aed053675acc9fb4fcbe7bc38c1120317bad68fasewardj printf("calloc(0,1) = 0x%lx\n", (unsigned long)p); 213059442f143f00f351c6cbc7f0119af65a6f652bsewardj free(p); 223059442f143f00f351c6cbc7f0119af65a6f652bsewardj 233059442f143f00f351c6cbc7f0119af65a6f652bsewardj p = calloc(0,-1); 24aed053675acc9fb4fcbe7bc38c1120317bad68fasewardj printf("calloc(0,-1) = 0x%lx\n", (unsigned long)p); 253059442f143f00f351c6cbc7f0119af65a6f652bsewardj free(p); 263059442f143f00f351c6cbc7f0119af65a6f652bsewardj 278f105fa797786a8e0acb1dcc614c81ca4a5578benjn // We no longer get a warning with this due to the calloc overflow checking 288f105fa797786a8e0acb1dcc614c81ca4a5578benjn // done for bug 149878. It's no great loss, it's extremely unlikely to 298f105fa797786a8e0acb1dcc614c81ca4a5578benjn // occur in practice. 303059442f143f00f351c6cbc7f0119af65a6f652bsewardj p = calloc(-1,-1); 31aed053675acc9fb4fcbe7bc38c1120317bad68fasewardj printf("calloc(-1,-1) = 0x%lx\n", (unsigned long)p); 323059442f143f00f351c6cbc7f0119af65a6f652bsewardj free(p); 333059442f143f00f351c6cbc7f0119af65a6f652bsewardj 343059442f143f00f351c6cbc7f0119af65a6f652bsewardj return 0; 353059442f143f00f351c6cbc7f0119af65a6f652bsewardj} 36