Don’t use ceil() for integer arithmetics.
diff --git a/lib/zip_algorithm_deflate.c b/lib/zip_algorithm_deflate.c
index c108e43..f9bce32 100644
--- a/lib/zip_algorithm_deflate.c
+++ b/lib/zip_algorithm_deflate.c
@@ -34,7 +34,6 @@
#include "zipint.h"
#include <limits.h>
-#include <math.h>
#include <stdlib.h>
#include <zlib.h>
@@ -50,7 +49,7 @@
static zip_uint64_t maximum_compressed_size(zip_uint64_t uncompressed_size) {
/* max deflate size increase: size + ceil(size/16k)*5+6 */
- zip_uint64_t compressed_size = uncompressed_size + (zip_uint64_t)ceil((double)uncompressed_size/(16*1024) * 5) + 6;
+ zip_uint64_t compressed_size = (uncompressed_size + 16383) / 16384 * 5 + 6;
if (compressed_size < uncompressed_size) {
return ZIP_UINT64_MAX;