Avoid integer overflow. Coverity CID 1295382.
diff --git a/regress/source_hole.c b/regress/source_hole.c index 8cf522b..d3e6bce 100644 --- a/regress/source_hole.c +++ b/regress/source_hole.c
@@ -228,7 +228,8 @@ buffer->size = get_u64(b+12); buffer->nfragments = (buffer->size + buffer->fragment_size - 1) / buffer->fragment_size; - if ((buffer->fragment = (zip_uint8_t **)malloc(sizeof(buffer->fragment[0]) * buffer->nfragments)) == NULL) { + if ((buffer->nfragments > SIZE_MAX/sizeof(buffer->fragment[0])) + || ((buffer->fragment = (zip_uint8_t **)malloc(sizeof(buffer->fragment[0]) * buffer->nfragments)) == NULL)) { zip_error_set(error, ZIP_ER_MEMORY, 0); return -1; }