diff options
author | Michael Grunder <michael.grunder@gmail.com> | 2019-12-18 13:45:01 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-18 13:45:01 -0800 |
commit | c96d492215eb3d4c80f4d7344ac41859eced5bab (patch) | |
tree | e003d33cf6f7465502d802c90f40e2c20d06c3d9 | |
parent | b2d1ad64d03ea237e18f26fc294af87180b70d63 (diff) | |
parent | ac0b186aa3ec12eb1730f2f58b702c30d3ed5789 (diff) |
Merge pull request #741 from redis/redisgetreply-null
Free the reply in redisGetReply when passed NULL
-rw-r--r-- | hiredis.c | 9 | ||||
-rw-r--r-- | test.c | 5 |
2 files changed, 12 insertions, 2 deletions
@@ -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; } @@ -591,6 +591,11 @@ static void test_blocking_connection(struct config config) { strcasecmp(reply->element[1]->str,"pong") == 0); freeReplyObject(reply); + /* Make sure passing NULL to redisGetReply is safe */ + test("Can pass NULL to redisGetReply: "); + assert(redisAppendCommand(c, "PING") == REDIS_OK); + test_cond(redisGetReply(c, NULL) == REDIS_OK); + disconnect(c, 0); } |