From 09f7a77294a23c88346442cd6874390a932b3241 Mon Sep 17 00:00:00 2001 From: michael-grunder Date: Thu, 29 Jan 2015 15:31:15 -0800 Subject: Call zval destructor if we fall back to prevent leak --- redis_array.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'redis_array.c') 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); } -- cgit v1.2.3