From 67f61b839e21c05f787ec8edf68946e0c1aed077 Mon Sep 17 00:00:00 2001
From: Daniel Walter <dwalter@sigma-star.at>
Date: Thu, 17 Mar 2016 19:12:47 +0100
Subject: Fix some memory leaks

---
 slstatus.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'slstatus.c')

diff --git a/slstatus.c b/slstatus.c
index 76df821..1db9af8 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -179,7 +179,9 @@ get_datetime(const char *timeformat)
 
     setlocale(LC_TIME, "C");
     /* return time */
-    return smprintf("%s", buf);
+    char *ret = smprintf("%s", buf);
+    free(buf);
+    return ret;
 }
 
 /* disk usage percentage */
@@ -346,7 +348,7 @@ main()
     /* return status every interval */
     for (;;) {
         /* clear the string */
-        strcpy(status_string, "");
+        memset(status_string, 0, sizeof(status_string));
 
         /* generate status_string */
         for (size_t i = 0; i < sizeof(args) / sizeof(args[0]); ++i) {
@@ -354,6 +356,8 @@ main()
             char *res = argument.func(argument.args);
             char *element = smprintf(argument.format, res);
             strcat(status_string, element);
+            free(res);
+            free(element);
         }
 
         /* return the statusbar */
-- 
cgit v1.2.3