Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael-grunder <michael.grunder@gmail.com>2015-01-30 02:31:15 +0300
committermichael-grunder <michael.grunder@gmail.com>2015-01-30 02:31:15 +0300
commit09f7a77294a23c88346442cd6874390a932b3241 (patch)
tree66654108fcea1a579bb4e38686f0a45d04cfa06b /redis_array.c
parentf37574e959a37aeabb1634531c87a1cdbc712808 (diff)
Call zval destructor if we fall back to prevent leak
Diffstat (limited to 'redis_array.c')
-rw-r--r--redis_array.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/redis_array.c b/redis_array.c
index cdc40448..052d1d8d 100644
--- a/redis_array.c
+++ b/redis_array.c
@@ -403,7 +403,10 @@ ra_forward_call(INTERNAL_FUNCTION_PARAMETERS, RedisArray *ra, const char *cmd, i
/* check if we have an error. */
if(RA_CALL_FAILED(return_value,cmd) && ra->prev && !b_write_cmd) { /* there was an error reading, try with prev ring. */
- /* ERROR, FALLBACK TO PREVIOUS RING and forward a reference to the first redis instance we were looking at. */
+ /* Free previous return value */
+ zval_dtor(return_value);
+
+ /* ERROR, FALLBACK TO PREVIOUS RING and forward a reference to the first redis instance we were looking at. */
ra_forward_call(INTERNAL_FUNCTION_PARAM_PASSTHRU, ra->prev, cmd, cmd_len, z_args, z_new_target?z_new_target:redis_inst);
}