[rrd-developers] [PATCH] Fix potential memory leak in rrd_flushcached during failure.

kevin brintnall kbrint at rufus.net
Sun Oct 4 17:20:28 CEST 2009


---
 src/rrd_flushcached.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/rrd_flushcached.c b/src/rrd_flushcached.c
index 5d18a1e..93b0fb5 100644
--- a/src/rrd_flushcached.c
+++ b/src/rrd_flushcached.c
@@ -74,7 +74,7 @@ int rrd_flushcached (int argc, char **argv)
 
     /* try to connect to rrdcached */
     status = rrdc_connect(opt_daemon);
-    if (status != 0) return status;
+    if (status != 0) goto out;
 
     if (! rrdc_is_connected(opt_daemon))
     {
@@ -82,7 +82,8 @@ int rrd_flushcached (int argc, char **argv)
                 "option to set an address on the command line or set the "
                 "\"%s\" environment variable.",
                 ENV_RRDCACHED_ADDRESS);
-        return (-1);
+        status = -1;
+        goto out;
     }
 
     status = 0;
@@ -106,9 +107,10 @@ int rrd_flushcached (int argc, char **argv)
         }
     }
 
+out:
     if (opt_daemon) free(opt_daemon);
 
-    return ((status == 0) ? 0 : -1);
+    return status;
 } /* int rrd_flush */
 
 /*
-- 
1.6.4



More information about the rrd-developers mailing list