Code

Fix memory leak in redis.c
authorMichael Spiegle <mspiegle@myspace-inc.com>
Fri, 10 Jan 2014 00:48:47 +0000 (00:48 +0000)
committerMarc Fournier <marc.fournier@camptocamp.com>
Fri, 7 Nov 2014 21:46:20 +0000 (22:46 +0100)
src/redis.c

index 47e229e7f401164e6792b20958b0645b81cd3c5d..f1a88b2947b6de3d0e9928c7032d32f929d352cb 100644 (file)
@@ -278,9 +278,12 @@ static int redis_read (void) /* {{{ */
       DEBUG ("redis plugin: authenticanting node `%s' passwd(%s).", rn->name, rn->passwd);
       rr = redisCommand (rh, "AUTH %s", rn->passwd);
 
-      if (rr == NULL || rr->type != 5)
+      if (rr == NULL || rr->type != REDIS_REPLY_STATUS)
       {
         WARNING ("redis plugin: unable to authenticate on node `%s'.", rn->name);
+        if (rr != NULL)
+          freeReplyObject (rr);
+
         redisFree (rh);
         continue;
       }
@@ -307,6 +310,7 @@ static int redis_read (void) /* {{{ */
     redis_handle_info (rn->name, rr->str, "pubsub", "patterns", "pubsub_patterns", DS_TYPE_GAUGE);
     redis_handle_info (rn->name, rr->str, "current_connections", "slaves", "connected_slaves", DS_TYPE_GAUGE);
 
+    freeReplyObject (rr);
     redisFree (rh);
   }