reallocarray introduction available on glibc 2.26. allocates an array of m*n elements but checking for overflow.

This commit is contained in:
David Carlier
2023-03-26 08:33:30 +01:00
parent ae745427cd
commit 3fe37e36fa
3 changed files with 34 additions and 0 deletions
+16
View File
@@ -165,6 +165,22 @@ int main(void) {
printf("realloc (SIZE_MAX): ");
test_cannot_alloc(ptr_realloc_maxsize, realloc_maxsize_errno);
free(ptr_realloc_maxsize);
errno = 0;
char * ptr_reallocarray_maxsize = (char *)malloc(sample_alloc_size);
ptr_reallocarray_maxsize = (char *)reallocarray(ptr_reallocarray_maxsize, 2, sample_alloc_size);
int reallocarray_errno = errno;
printf("reallocarray: ");
test_non_null(ptr_reallocarray_maxsize, reallocarray_errno);
for(i = 0; i < sample_realloc_size; i++) {
ptr_realloc[i] = (char)i;
}
errno = 0;
ptr_reallocarray_maxsize = (char *)reallocarray(ptr_reallocarray_maxsize, 2, max_size);
reallocarray_errno = errno;
printf("reallocarray (SIZE_MAX): ");
test_cannot_alloc(ptr_reallocarray_maxsize, reallocarray_errno);
free(ptr_reallocarray_maxsize);
errno = 0;
char * ptr_memalign_size0 = (char *)memalign(aligned_alloc_alignment, zero_size);