From 980164cccaa37eea7494b2d238fdb3e4c73e3beb Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Fri, 1 May 2020 10:04:33 +0200 Subject: Fix various memory leaks Fixes #362 --- i3status.c | 4 +++- src/print_ddate.c | 1 + src/print_run_watch.c | 2 ++ src/print_time.c | 3 +++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/i3status.c b/i3status.c index 464c641..bf2f1cd 100644 --- a/i3status.c +++ b/i3status.c @@ -207,6 +207,7 @@ static char *get_config_path(void) { config_path = resolve_tilde("~/.i3status.conf"); if (path_exists(config_path)) return config_path; + free(config_path); char *buf = strdup(xdg_config_dirs); char *tok = strtok(buf, ":"); while (tok != NULL) { @@ -230,7 +231,6 @@ static char *get_config_path(void) { die("Unable to find the configuration file (looked at " "~/.i3status.conf, $XDG_CONFIG_HOME/i3status/config, " SYSCONFDIR "/i3status.conf and $XDG_CONFIG_DIRS/i3status/config)"); - return NULL; } /* @@ -807,4 +807,6 @@ int main(int argc, char *argv[]) { struct timespec ts = {interval - 1 - (current_timeval.tv_sec % interval), (10e5 - current_timeval.tv_usec) * 1000}; nanosleep(&ts, NULL); } + + yajl_gen_free(json_gen); } diff --git a/src/print_ddate.c b/src/print_ddate.c index 1a5258c..149a267 100644 --- a/src/print_ddate.c +++ b/src/print_ddate.c @@ -173,4 +173,5 @@ void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t) const size_t num = sizeof(placeholders) / sizeof(placeholder_t); buffer = format_placeholders(format, &placeholders[0], num); OUTPUT_FULL_TEXT(buffer); + free(buffer); } diff --git a/src/print_run_watch.c b/src/print_run_watch.c index d153da4..ccc7206 100644 --- a/src/print_run_watch.c +++ b/src/print_run_watch.c @@ -1,6 +1,7 @@ // vim:ts=4:sw=4:expandtab #include #include +#include #include #include #include @@ -35,4 +36,5 @@ void print_run_watch(yajl_gen json_gen, char *buffer, const char *title, const c END_COLOR; OUTPUT_FULL_TEXT(buffer); + free(buffer); } diff --git a/src/print_time.c b/src/print_time.c index 67930b7..eede31d 100644 --- a/src/print_time.c +++ b/src/print_time.c @@ -82,4 +82,7 @@ void print_time(yajl_gen json_gen, char *buffer, const char *title, const char * out: *outwalk = '\0'; OUTPUT_FULL_TEXT(buffer); + if (format_time != NULL) { + free(buffer); + } } -- cgit v1.2.3 From 45a0b91141a6e3e942b8351e765817f2d931c5a2 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Fri, 1 May 2020 13:55:56 +0200 Subject: travis: Re-enable sanitizers --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 02c9223..6b92858 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,6 @@ addons: - libcap2-bin - pulseaudio script: - # TODO: re-enable sanitizers once issues are fixed - - autoreconf -fi && mkdir -p build && cd build && (../configure --disable-sanitizers || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse || (echo "not linked against pulseaudio"; exit 1) - - make clean && (../configure --disable-sanitizers --disable-pulseaudio || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse && (echo "linked against pulseaudio"; exit 1) || true + - autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse || (echo "not linked against pulseaudio"; exit 1) + - make clean && (../configure --enable-sanitizers --disable-pulseaudio || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse && (echo "linked against pulseaudio"; exit 1) || true - make -j 8 check V=1 || (cat test-suite.log; false) -- cgit v1.2.3