From 0c3735fc2336bf56a061e9a3ff0438583d0790d3 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Wed, 19 Mar 2014 04:56:34 -0400 Subject: [PATCH] Free owindow when no con_id match or window This memory leak is related to matching on con_id or matching when the container has a null window. In that case, windows that do not match would leak the owindow struct. --- src/commands.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands.c b/src/commands.c index f05d9758..0f4315c1 100644 --- a/src/commands.c +++ b/src/commands.c @@ -298,15 +298,16 @@ void cmd_criteria_match_windows(I3_CMD) { if (current_match->con_id == current->con) { DLOG("matches container!\n"); TAILQ_INSERT_TAIL(&owindows, current, owindows); + } else { + DLOG("doesnt match\n"); + free(current); } } else if (current_match->mark != NULL && current->con->mark != NULL && regex_matches(current_match->mark, current->con->mark)) { DLOG("match by mark\n"); TAILQ_INSERT_TAIL(&owindows, current, owindows); } else { - if (current->con->window == NULL) - continue; - if (match_matches_window(current_match, current->con->window)) { + if (current->con->window && match_matches_window(current_match, current->con->window)) { DLOG("matches window!\n"); TAILQ_INSERT_TAIL(&owindows, current, owindows); } else { -- 2.39.5