...
In this compliant solution, the multiplication of the two arguments num_elements
and sizeof(long)
is evaluated are checked before the call to calloc()
to determine if an overflow will occur. The multsize_t()
function sets errno
to a non-zero value if the multiplication operation overflows.
Code Block | ||
---|---|---|
| ||
long *buffer; size_t num_elements = calc_size(); errno = 0; (void) multsize_tif (num_elements, > SIZE_MAX/sizeof(long)); if (errno) { /* handle error condition */ } buffer = calloc(num_elements, sizeof(long)); if (buffer == NULL) { /* handle error condition */ } |
...