From c18b58899e6cad293983fbe522d241bc6a7ce436 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Sun, 19 Sep 2010 20:41:03 +0200 Subject: Use auxiliary variable to store reply before free'ing the list --- hiredis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hiredis.c b/hiredis.c index fcda779..611a122 100644 --- a/hiredis.c +++ b/hiredis.c @@ -274,6 +274,7 @@ static int processItem(redisReader *r) { #define READ_BUFFER_SIZE 2048 static redisReply *redisReadReply(int fd) { + redisReply *reply; redisReader r; int bytes; @@ -319,9 +320,10 @@ static redisReply *redisReadReply(int fd) { if (processItem(&r) < 0) break; } + reply = r.rlist[0]; free(r.buf); free(r.rlist); - return r.rlist[0]; + return reply; } /* Helper function for redisCommand(). It's used to append the next argument -- cgit v1.2.3