summaryrefslogtreecommitdiff
path: root/hiredis.c
diff options
context:
space:
mode:
authormichael-grunder <michael.grunder@gmail.com>2019-12-12 14:40:50 -0800
committermichael-grunder <michael.grunder@gmail.com>2019-12-12 14:40:50 -0800
commitac0b186aa3ec12eb1730f2f58b702c30d3ed5789 (patch)
treee003d33cf6f7465502d802c90f40e2c20d06c3d9 /hiredis.c
parentb2d1ad64d03ea237e18f26fc294af87180b70d63 (diff)
Free the reply in redisGetReply when passed NULL
We currently perform a NULL check in redisGetReply and don't push the reply back to the caller, but we don't free any reply meaning that this will leak memory: redisGetReply(context, NULL); This change simply frees the reply if we were passed NULL. Addresses #740
Diffstat (limited to 'hiredis.c')
-rw-r--r--hiredis.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/hiredis.c b/hiredis.c
index c461131..8e438f2 100644
--- a/hiredis.c
+++ b/hiredis.c
@@ -945,8 +945,13 @@ int redisGetReply(redisContext *c, void **reply) {
} while (aux == NULL);
}
- /* Set reply object */
- if (reply != NULL) *reply = aux;
+ /* Set reply or free it if we were passed NULL */
+ if (reply != NULL) {
+ *reply = aux;
+ } else {
+ freeReplyObject(aux);
+ }
+
return REDIS_OK;
}