From a9f703c3849a1056f356bdfc21ae1f3280fe2907 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 5 Feb 2015 11:15:51 +0800 Subject: [PATCH 1/4] Use strpprintf --- php_memcached.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/php_memcached.c b/php_memcached.c index 3a25a1a6..a1ea6835 100644 --- a/php_memcached.c +++ b/php_memcached.c @@ -2760,11 +2760,9 @@ static PHP_METHOD(Memcached, getResultMessage) case MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE: case MEMCACHED_UNKNOWN_READ_FAILURE: if (i_obj->memc_errno) { - char *str; - int str_len; - str_len = spprintf(&str, 0, "%s: %s", memcached_strerror(m_obj->memc, (memcached_return)i_obj->rescode), - strerror(i_obj->memc_errno)); - RETURN_STRINGL(str, str_len); + zend_string *str = strpprintf(0, "%s: %s", + memcached_strerror(m_obj->memc, (memcached_return)i_obj->rescode), strerror(i_obj->memc_errno)); + RETURN_STR(str); } /* Fall through */ default: From aa3bc57ac8807442ec707e6cd167ca246d2437e3 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 12 Feb 2015 15:53:32 +0800 Subject: [PATCH 2/4] Fixed mem issue (double free) --- php_memcached.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/php_memcached.c b/php_memcached.c index a1ea6835..28675f14 100644 --- a/php_memcached.c +++ b/php_memcached.c @@ -1299,14 +1299,8 @@ static void php_memc_setMulti_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool by_ke retry: if (!by_key) { status = memcached_set(m_obj->memc, str_key->val, str_key->len, payload, payload_len, expiration, flags); - if (!skey) { - zend_string_release(str_key); - } } else { status = memcached_set_by_key(m_obj->memc, server_key->val, server_key->len, str_key->val, str_key->len, payload, payload_len, expiration, flags); - if (!skey) { - zend_string_release(str_key); - } } if (php_memc_handle_error(i_obj, status) < 0) { From 4187e2277fa7469b0b8a67045083dde1950cecc0 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Wed, 22 Apr 2015 23:37:53 -0700 Subject: [PATCH 3/4] No more ZEND_CTOR_MAKE_NULL --- php_memcached.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/php_memcached.c b/php_memcached.c index 28675f14..1063b229 100644 --- a/php_memcached.c +++ b/php_memcached.c @@ -407,8 +407,7 @@ static PHP_METHOD(Memcached, __construct) zend_fcall_info fci = {0}; zend_fcall_info_cache fci_cache; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|S!f!S", &persistent_id, &fci, &fci_cache, &conn_str) == FAILURE) { - ZEND_CTOR_MAKE_NULL(); + if (zend_parse_parameters_throw(ZEND_NUM_ARGS(), "|S!f!S", &persistent_id, &fci, &fci_cache, &conn_str) == FAILURE) { return; } From 650b67c64ca8ac8bd140492fd1078015cb8eaa0b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 27 Jun 2015 18:28:31 +0200 Subject: [PATCH 4/4] Update php_memcached.c --- php_memcached.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php_memcached.c b/php_memcached.c index 1063b229..9195bfcd 100644 --- a/php_memcached.c +++ b/php_memcached.c @@ -3119,7 +3119,7 @@ zend_bool s_serialize_value (enum memcached_serializer serializer, zval *value, #ifdef HAVE_MEMCACHED_MSGPACK case SERIALIZER_MSGPACK: php_msgpack_serialize(buf, value); - if (!buf->c) { + if (!buf->s) { php_error_docref(NULL, E_WARNING, "could not serialize value with msgpack"); return 0; }