Fix another integer overflow. Second try at fixing Coverity CID 1295382.
diff --git a/regress/source_hole.c b/regress/source_hole.c index 4f06330..5ffa75e 100644 --- a/regress/source_hole.c +++ b/regress/source_hole.c
@@ -227,7 +227,11 @@ buffer->fragment_size = get_u64(b+4); buffer->size = get_u64(b+12); - + + if (buffer->size + buffer->fragment_size < buffer->size) { + zip_error_set(error, ZIP_ER_MEMORY, 0); + return -1; + } buffer->nfragments = (buffer->size + buffer->fragment_size - 1) / buffer->fragment_size; if ((buffer->nfragments > SIZE_MAX/sizeof(buffer->fragment[0])) || ((buffer->fragment = (zip_uint8_t **)malloc(sizeof(buffer->fragment[0]) * buffer->nfragments)) == NULL)) {