summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bz2/bz2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/bz2/bz2.c b/ext/bz2/bz2.c
index fe780fc252..2bf1e57de6 100644
--- a/ext/bz2/bz2.c
+++ b/ext/bz2/bz2.c
@@ -465,13 +465,13 @@ PHP_FUNCTION(bzdecompress)
while ((error = BZ2_bzDecompress(&bzs)) == BZ_OK && bzs.avail_in > 0) {
/* compression is better then 2:1, need to allocate more memory */
bzs.avail_out = source_len;
- size = (bzs.total_out_hi32 << 32) + bzs.total_out_lo32;
+ size = (bzs.total_out_hi32 * (unsigned int) -1) + bzs.total_out_lo32;
dest = erealloc(dest, size + bzs.avail_out + 1);
bzs.next_out = dest + size;
}
if (error == BZ_STREAM_END || error == BZ_OK) {
- size = (bzs.total_out_hi32 << 32) + bzs.total_out_lo32;
+ size = (bzs.total_out_hi32 * (unsigned int) -1) + bzs.total_out_lo32;
dest = erealloc(dest, size + 1);
dest[size] = '\0';
RETVAL_STRINGL(dest, size, 0);