@@ -933,17 +933,18 @@ zend_bool s_compress_value (php_memc_compression_type compression_type, zend_lon
933
933
934
934
case COMPRESSION_TYPE_ZLIB :
935
935
{
936
- compressed_size = buffer_size ;
936
+ unsigned long cs = compressed_size = buffer_size ;
937
937
938
938
if (compression_level < 0 ) {
939
939
compression_level = 0 ;
940
940
} else if (compression_level > 9 ) {
941
941
compression_level = 9 ;
942
942
}
943
943
944
- int status = compress2 ((Bytef * ) buffer , & compressed_size , (Bytef * ) ZSTR_VAL (payload ), ZSTR_LEN (payload ), compression_level );
944
+ int status = compress2 ((Bytef * ) buffer , & cs , (Bytef * ) ZSTR_VAL (payload ), ZSTR_LEN (payload ), compression_level );
945
945
946
946
if (status == Z_OK ) {
947
+ compressed_size = cs ;
947
948
compress_status = 1 ;
948
949
compression_type_flag = MEMC_VAL_COMPRESSION_ZLIB ;
949
950
}
@@ -3751,7 +3752,10 @@ zend_string *s_decompress_value (const char *payload, size_t payload_len, uint32
3751
3752
decompress_status = ((length = fastlz_decompress (payload , payload_len , & buffer -> val , buffer -> len )) > 0 );
3752
3753
}
3753
3754
else if (is_zlib ) {
3754
- decompress_status = (uncompress ((Bytef * ) buffer -> val , & buffer -> len , (Bytef * )payload , payload_len ) == Z_OK );
3755
+ unsigned long ds = buffer -> len ;
3756
+
3757
+ decompress_status = (uncompress ((Bytef * ) buffer -> val , & ds , (Bytef * )payload , payload_len ) == Z_OK );
3758
+ buffer -> len = ds ;
3755
3759
}
3756
3760
3757
3761
ZSTR_VAL (buffer )[stored_length ] = '\0' ;
0 commit comments