summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--slstatus.c8
1 files changed, 6 insertions, 2 deletions
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 */