| |
| /* 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; |
| } |