{
uint32_t *datap;
- if (length + bytes_read < length)
+ if (ckd_add (&length, length, bytes_read))
{
errno = EOVERFLOW;
return false;
}
- length += bytes_read;
/* Process multiples of 8 bytes */
datap = (uint32_t *)buf;
while ((bytes_read = fread (buf, 1, BUFLEN, stream)) > 0)
{
- if (len + bytes_read < len)
+ if (ckd_add (&len, len, bytes_read))
{
errno = EOVERFLOW;
return -1;
}
- len += bytes_read;
crc = crc32_update (crc, (char const *)buf, bytes_read);
__m256i *datap;
- if (length + bytes_read < length)
+ if (ckd_add (&length, length, bytes_read))
{
errno = EOVERFLOW;
return false;
}
- length += bytes_read;
datap = (__m256i *)buf;
__m128i fold_data;
__m128i xor_crc;
- if (length + bytes_read < length)
+ if (ckd_add (&length, length, bytes_read))
{
errno = EOVERFLOW;
return false;
}
- length += bytes_read;
datap = (__m128i *)buf;
uint64x2_t fold_data;
uint64x2_t xor_crc;
- if (length + bytes_read < length)
+ if (ckd_add (&length, length, bytes_read))
{
errno = EOVERFLOW;
return false;
}
- length += bytes_read;
datap = (uint64x2_t *) buf;