From f794ebed54048e5dd6d858469a4b06e4722d331a Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Wed, 8 Jan 2014 11:36:21 +0100 Subject: [PATCH] Fix compression of serialized objects. Due to commit 0f5550efe0b00e90b00fef80d0de4840244c15f1, compressing a serialized object provided an inappropriate size to `s_compress_value()` which will eventually lead to a segfault during compression. Provide the the previously computed length instead. --- php_memcached.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php_memcached.c b/php_memcached.c index 71c7ef84..a6b2b231 100644 --- a/php_memcached.c +++ b/php_memcached.c @@ -3266,7 +3266,7 @@ char *php_memc_zval_to_payload(zval *value, size_t *payload_len, uint32_t *flags /* If we have compression flag, compress the value */ if (MEMC_VAL_HAS_FLAG(*flags, MEMC_VAL_COMPRESSED)) { /* status */ - *payload_len = Z_STRLEN_P(value); + *payload_len = pl_len; payload = s_compress_value (compression_type, pl, payload_len, flags TSRMLS_CC); }