From: Tony Crisci Date: Wed, 19 Mar 2014 08:56:34 +0000 (-0400) Subject: Free owindow when no con_id match or window X-Git-Tag: 4.8~93 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0c3735fc2336bf56a061e9a3ff0438583d0790d3;p=i3%2Fi3 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. --- 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 {