diff options
author | Michael Grunder <michael.grunder@gmail.com> | 2018-11-22 22:37:18 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-22 22:37:18 +0300 |
commit | 91bd7426d539f48900ed545a105c78f02b1927b8 (patch) | |
tree | b5e73ddda8093ff7ad04235b69a82b240be4ff85 /redis_cluster.c | |
parent | 9d1bdb7fd3c653b32db7d88c2467ffa842e6ba82 (diff) |
Masters info leakfix (#1462)
Fix for memory leaks in `RedisCluster->_masters()` and `RedisCluster->info()`
Diffstat (limited to 'redis_cluster.c')
-rw-r--r-- | redis_cluster.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/redis_cluster.c b/redis_cluster.c index 8f10bcb0..e08f1f5c 100644 --- a/redis_cluster.c +++ b/redis_cluster.c @@ -2026,25 +2026,21 @@ PHP_METHOD(RedisCluster, _unserialize) { PHP_METHOD(RedisCluster, _masters) { redisCluster *c = GET_CONTEXT(); redisClusterNode *node; - zval zv, *z_ret = &zv; - array_init(z_ret); + array_init(return_value); ZEND_HASH_FOREACH_PTR(c->nodes, node) { if (node == NULL) break; zval z, *z_sub = &z; -#if (PHP_MAJOR_VERSION < 7) - MAKE_STD_ZVAL(z_sub); -#endif + + REDIS_MAKE_STD_ZVAL(z_sub); array_init(z_sub); add_next_index_stringl(z_sub, ZSTR_VAL(node->sock->host), ZSTR_LEN(node->sock->host)); add_next_index_long(z_sub, node->sock->port); - add_next_index_zval(z_ret, z_sub); + add_next_index_zval(return_value, z_sub); } ZEND_HASH_FOREACH_END(); - - RETVAL_ZVAL(z_ret, 1, 0); } PHP_METHOD(RedisCluster, _redir) { @@ -2714,6 +2710,7 @@ PHP_METHOD(RedisCluster, info) { int cmd_len; strlen_t opt_len = 0; void *ctx = NULL; + zval *z_arg; short slot; |