121 Commits

Author SHA1 Message Date
Pavlo Yatsukhnenko
564ce3a1e5 RedisArray segfault fix 2017-03-16 08:37:08 -07:00
michael-grunder
d0b8011a9a Fix compiler warnings.
Changed zend hash function overrides to extern in the header, and
then defined them in library.c

Created a simple macro to suppress "set but not used" warnings,
which differ depending on build environment (php 5 vs php 7).
2016-12-18 21:06:38 -08:00
Pavlo Yatsukhnenko
5a35e7edd4 memory leak 2016-12-05 23:54:00 +02:00
Pavlo Yatsukhnenko
cb4fd619c0 memory leak 2016-12-05 16:53:24 +02:00
Pavlo Yatsukhnenko
a23e36f208 zval_get_string
Added gc attribute to zend_string (for zend_string_release).
Added function zval_get_string and replace convert_to_string with it.
2016-12-02 16:04:59 +02:00
Pavlo Yatsukhnenko
433caf4788 refactoring 2016-11-21 17:46:58 +02:00
Pavlo Yatsukhnenko
ad9f4ea4f6 fix crash on FreeBSD and CentOS 2016-11-21 09:47:20 +02:00
Pavlo Yatsukhnenko
3d7da1fdb6 refactoring 2016-11-20 21:07:24 +02:00
Pavlo Yatsukhnenko
14c19fa3a0 refactoring 2016-11-16 18:05:27 +02:00
Pavlo Yatsukhnenko
d7d18bfa05 refactoring
Use estrndup instead os estrdup/emalloc+memcpy
2016-11-13 15:12:40 +02:00
Pavlo Yatsukhnenko
19f5f708c2 WIP: php7 compatibility 2016-11-11 23:04:27 +02:00
Pavlo Yatsukhnenko
5f15ce222f WIP: php7 compatibility 2016-11-09 21:03:36 +02:00
Pavlo Yatsukhnenko
04a7327af8 WIP: php7 compatibility 2016-11-08 20:11:51 +02:00
Pavlo Yatsukhnenko
5de84b3d01 WIP: php7 compatibility 2016-11-07 20:18:57 +02:00
Pavlo Yatsukhnenko
8f3deb7f34 Fix static analyzer warnings 2016-11-04 18:21:42 +02:00
Pavlo Yatsukhnenko
7919b5c0aa WIP: php7 compatibility
Wrap zend_is_callable_ex + session handlers
2016-10-31 22:59:59 +02:00
Pavlo Yatsukhnenko
56abe19721 WIP: php7 compatibility
Wrap zend_hash_init destructor.
Add implementation of zend_hash_str_exists, zend_hash_str_update_ptr,
zend_hash_index_update_ptr and zval_get_long functions.
2016-10-28 14:53:58 +03:00
Pavlo Yatsukhnenko
8cfebfd98b WIP: php7 compatibility
zend_list_insert + add_assoc_string + add_assoc_zval
2016-10-27 20:35:47 +03:00
Pavlo Yatsukhnenko
a1e698873a WIP: php7 compatibility
Redefine add_next_index_string.
Fix zend_fcall_info retval and params.
2016-10-26 18:12:07 +03:00
Pavlo Yatsukhnenko
88658b5e9b WIP: php7 compatibility
Wrap create_cluster_context
2016-10-25 22:03:44 +03:00
Pavlo Yatsukhnenko
750ec8bbdc WIP: php7 compatibility
Redefine ZVAL_STRING + ZVAL_STRINGL macro
2016-10-24 18:00:26 +03:00
Pavlo Yatsukhnenko
a2cda39fdc RedisArray refactoring 2016-10-23 23:31:58 +03:00
Pavlo Yatsukhnenko
8f006d70f2 WIP: php7 compatibility
Redefine call_user_function
2016-10-21 17:41:25 +03:00
Pavlo Yatsukhnenko
2f2b3b3193 ra_index_keys refactoring 2016-10-10 23:10:00 +03:00
Pavlo Yatsukhnenko
33a8843c44 RedisArray refactoring 2016-10-10 22:35:34 +03:00
Pavlo Yatsukhnenko
84d9c27813 WIP: php7 compatibility
Define zend_string type + ZEND_HASH_FOREACH_KEY_VAL macro
2016-10-06 18:10:11 +03:00
Pavlo Yatsukhnenko
fa8f02946b WIP: php7 compatibility
Wrap zend_list_delete and add_property_resource.
Remove unnecessary zend_hash_get_current_key_ex calls and memmory
allocation.
2016-10-01 12:50:59 +03:00
Pavlo Yatsukhnenko
377dc5019c WIP: php7 compatibility
Redefine zend_hash_next_index_insert and zend_hash_get_current_data_ex macroses.
Fixed redis cluster crush (#954)
2016-09-23 14:09:50 +03:00
Pavlo Yatsukhnenko
2c62090a7d WIP: php7 compatibility
zend_hash_index_find + zend_hash_index_find_ptr
2016-09-21 09:03:32 +03:00
Pavlo Yatsukhnenko
d7931ab340 WIP: php7 compatibility
ZEND_HASH_FOREACH_VAL now works with zval * instead of zval **
2016-09-14 16:46:23 +03:00
Pavlo Yatsukhnenko
46c2de1b8a WIP: php7 compatibility
Redefine `zend_hash_get_current_data` macro as static inline function +
add `zend_hash_get_current_data_ptr` function
2016-09-13 17:15:52 +03:00
Pavlo Yatsukhnenko
12d29886be using zend_hash_str_find+zend_hash_str_find_ptr instead of zend_hash_find 2016-09-09 11:17:51 +03:00
Pavlo Yatsukhnenko
7c9824dbbc ZEND_HASH_FOREACH_VAL macro 2016-09-06 11:54:08 +03:00
Pavlo Yatsukhnenko
9950a11991 redis_array_impl.c refactoring 2016-08-15 23:28:06 +03:00
Pavlo Yatsukhnenko
e8fb3b780e replace emalloc+memcpy with estrndup 2016-07-30 23:43:59 +03:00
Pavlo Yatsukhnenko
c7a8c3bd82 This fixes issue #908 2016-07-30 10:15:35 +03:00
michael-grunder
9df734a288 Segfault and memory leak fixes for pull request
* We don't need to zval_dtor z_cons as it's a non-duplicated stack
allocated string.

* Destroy our z_pure_cmds member as it is allocated
2016-07-01 11:41:53 -07:00
Pavlo Yatsukhnenko
14a41a6b07 Move ra->count initialization to ra_load_hosts 2016-07-01 13:22:22 +03:00
michael-grunder
3012052849 More IPv6 additions
* Modified RedisArray to support IPv6
* Updated general test suite to take an override host
* Updated make-cluster.sh to take an override host
2016-02-12 18:10:50 -08:00
michael-grunder
fb0597992a Merge remote 2015-05-07 16:30:11 -07:00
michael-grunder
90a7cf4817 Updates to fix rebase issues 2015-05-06 12:12:49 -07:00
michael-grunder
69c6c04eec Added RedisArray and RedisCluster to config.w32 and more win32 fixes
Manually picked from: 6c377eee18
2015-05-05 15:22:40 -07:00
michael-grunder
97c9edc3aa Sorted a memory leak in RedisArray and retabbed unit tests 2015-05-05 15:18:01 -07:00
michael-grunder
0b269cbb72 More RedisCluster fixes
* Properly handle single array as well as variadic arguments for
  things like RedisCluster::del
* Wrapping keys in {} such that Redis and RedisCluster tests can
  use the same methods (avoiding CROSSSLOT).
* Fixed a double-free scenerio in redis_array_impl.c
2015-05-05 15:16:49 -07:00
michael-grunder
9c4de060e6 Fix rehashing memory leaks
The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:

1.  Construct the call in order to get all of the keys from the source
2.  Make a pass through call to the source node to get a response
3.  Use the response to make a pass through call to the destination node

The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.

Conflicts:
	redis_array_impl.c
2015-05-05 15:13:39 -07:00
michael-grunder
887eff0a9a Fix memory leaks in RedisArray (backport from develop) 2015-05-05 15:13:39 -07:00
michael-grunder
f0f341e90d Remove unused variable 2015-01-30 11:08:07 -08:00
michael-grunder
6dcc950054 Fix rehashing memory leaks
The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:

1.  Construct the call in order to get all of the keys from the source
2.  Make a pass through call to the source node to get a response
3.  Use the response to make a pass through call to the destination node

The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.
2015-01-29 15:57:17 -08:00
michael-grunder
f37574e959 Fix some simple leaks in RedisArray
* Make sure we always free our allocated key when extracting
* Don't copy z_fun and z_dist twice and only free one
* Free outer array for z_zadd_args
2015-01-29 15:17:18 -08:00
Michael Maclean
9f6edf8ada Iterate over hosts hash table in a safer way 2015-01-28 16:03:24 +00:00