From 3d44f75d0959313b1fc6a4e556d89927308a8cbe Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 24 Aug 2026 07:05:23 +0000 Subject: [PATCH 1/5] Do not leak buffer name on failure, from Jeong, Heon. --- cmd-set-buffer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd-set-buffer.c b/cmd-set-buffer.c index 6e640fec6..3e540f706 100644 --- a/cmd-set-buffer.c +++ b/cmd-set-buffer.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-set-buffer.c,v 1.37 2026/02/15 17:43:26 nicm Exp $ */ +/* $OpenBSD: cmd-set-buffer.c,v 1.38 2026/08/24 07:05:23 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -100,6 +100,7 @@ cmd_set_buffer_exec(struct cmd *self, struct cmdq_item *item) cmdq_error(item, "%s", cause); goto fail; } + free(bufname); return (CMD_RETURN_NORMAL); } @@ -107,8 +108,10 @@ cmd_set_buffer_exec(struct cmd *self, struct cmdq_item *item) cmdq_error(item, "no data specified"); goto fail; } - if ((newsize = strlen(args_string(args, 0))) == 0) + if ((newsize = strlen(args_string(args, 0))) == 0) { + free(bufname); return (CMD_RETURN_NORMAL); + } if (args_has(args, 'a') && pb != NULL) { olddata = paste_buffer_data(pb, &bufsize); @@ -127,6 +130,7 @@ cmd_set_buffer_exec(struct cmd *self, struct cmdq_item *item) if (args_has(args, 'w') && tc != NULL) tty_set_selection(&tc->tty, "", bufdata, bufsize); + free(bufname); return (CMD_RETURN_NORMAL); fail: From 995b39579506049aadbe321fbc4fb9818c50e2a3 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 24 Aug 2026 07:06:58 +0000 Subject: [PATCH 2/5] Do not leak format when drawing preview, from Jeong, Heon. --- window-tree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/window-tree.c b/window-tree.c index 9c00e9e8a..3fdf968fb 100644 --- a/window-tree.c +++ b/window-tree.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-tree.c,v 1.94 2026/07/14 17:17:18 nicm Exp $ */ +/* $OpenBSD: window-tree.c,v 1.95 2026/08/24 07:06:58 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott @@ -642,6 +642,7 @@ window_tree_draw_session(struct window_tree_modedata *data, struct session *s, } free(label); } + format_free(ft); if (loop != end - 1) { screen_write_cursormove(ctx, cx + offset + width, cy, @@ -790,6 +791,7 @@ window_tree_draw_window(struct window_tree_modedata *data, struct session *s, } free(label); } + format_free(ft); if (loop != end - 1) { screen_write_cursormove(ctx, cx + offset + width, cy, From 4cabc2ae85eea7d80a4d7f7fc75c8191f4c72c86 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 24 Aug 2026 07:08:19 +0000 Subject: [PATCH 3/5] Do not leak path when destroying client, from Jeong, Heon. --- server-client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server-client.c b/server-client.c index f1cdd8736..e5b15fc3a 100644 --- a/server-client.c +++ b/server-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.505 2026/08/20 09:19:24 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.506 2026/08/24 07:08:19 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -529,6 +529,7 @@ server_client_lost(struct client *c) input_cancel_requests(c); free(c->title); + free(c->path); free((void *)c->cwd); evtimer_del(&c->repeat_timer); From 7792a74c76c03ad0074880d9e6bbdc27cf3afb7f Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 24 Aug 2026 07:10:38 +0000 Subject: [PATCH 4/5] Free pane fallback range when freeing pane, from Jeong, Heon. --- window.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/window.c b/window.c index 852c8e666..a61e2652d 100644 --- a/window.c +++ b/window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window.c,v 1.370 2026/08/20 09:19:24 nicm Exp $ */ +/* $OpenBSD: window.c,v 1.371 2026/08/24 07:10:38 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -1534,10 +1534,9 @@ window_pane_free(struct window_pane *wp) log_debug("pane %%%u freed (%d references)", wp->id, wp->references); free(wp->searchstr); - screen_free(&wp->status_screen); screen_free(&wp->base); - + free(wp->r.ranges); options_free(wp->options); free((void *)wp->cwd); free(wp->shell); From c9f5ecb4b55dcdb80af914eb2320f71f0f1234ec Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 24 Aug 2026 07:14:54 +0000 Subject: [PATCH 5/5] Do not leak cached status line, from Jeong, Heon. --- window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/window.c b/window.c index a61e2652d..d1e74980b 100644 --- a/window.c +++ b/window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window.c,v 1.371 2026/08/24 07:10:38 nicm Exp $ */ +/* $OpenBSD: window.c,v 1.372 2026/08/24 07:14:54 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -1543,6 +1543,7 @@ window_pane_free(struct window_pane *wp) cmd_free_argv(wp->argc, wp->argv); colour_palette_free(&wp->palette); style_ranges_free(&wp->border_status_line.ranges); + free(wp->border_status_line.expanded); free(wp); }