From 39357c829c62c1e0c0af6e7a8715b0073c65e8e9 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 31 Aug 2026 07:41:48 +0000 Subject: [PATCH 1/5] Clear stale marks when a search regex fails to compile, GitHub issue 5547 from Uzair Aftab. --- window-copy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/window-copy.c b/window-copy.c index 8c492c42e..2437c1784 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.426 2026/08/19 19:55:04 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.427 2026/08/31 07:41:48 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -4851,6 +4851,8 @@ window_copy_search_marks(struct window_mode_entry *wme, struct screen *ssp, cflags |= REG_ICASE; if (regcomp(®, sbuf, cflags) != 0) { free(sbuf); + free(data->searchmark); + data->searchmark = NULL; return (0); } free(sbuf); From 6a1ecdcce34cd2682b3bf06b14a10ce4f24c8165 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 31 Aug 2026 07:42:56 +0000 Subject: [PATCH 2/5] Do not try to append zero size cells, from Uzair Aftab. --- window-copy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/window-copy.c b/window-copy.c index 2437c1784..572a199fb 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.427 2026/08/31 07:41:48 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.428 2026/08/31 07:42:56 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -4301,7 +4301,7 @@ window_copy_stringify(struct grid *gd, u_int py, u_int first, u_int last, } if (dlen == 1) buf[bx++] = *d; - else { + else if (dlen != 0) { memcpy(buf + bx, d, dlen); bx += dlen; } From c552d1bf167a240d28f82b4d78a604a12da3326a Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 31 Aug 2026 07:44:39 +0000 Subject: [PATCH 3/5] Layout cell can be replaced by unzoom, fixes use after free. From Uzair Aftab. --- cmd-resize-pane.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c index 01ddf424a..fc5062ab4 100644 --- a/cmd-resize-pane.c +++ b/cmd-resize-pane.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-resize-pane.c,v 1.67 2026/07/10 13:38:45 nicm Exp $ */ +/* $OpenBSD: cmd-resize-pane.c,v 1.68 2026/08/31 07:44:39 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -92,6 +92,7 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item *item) return (CMD_RETURN_NORMAL); } server_unzoom_window(w); + lc = wp->layout_cell; /* may have been replaced by unzoom */ if (args_has(args, 'x')) { x = args_percentage(args, 'x', 0, PANE_MAXIMUM, w->sx, &cause); From af3e4d2e5b63fa2db14834b17b20b40771744b91 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 31 Aug 2026 07:46:55 +0000 Subject: [PATCH 4/5] Do not allow popups for control clients, from Noam Stolero. --- cmd-display-menu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd-display-menu.c b/cmd-display-menu.c index 19ad3a9b4..83faaf6ae 100644 --- a/cmd-display-menu.c +++ b/cmd-display-menu.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-display-menu.c,v 1.52 2026/07/14 19:07:03 nicm Exp $ */ +/* $OpenBSD: cmd-display-menu.c,v 1.53 2026/08/31 07:46:55 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott @@ -592,6 +592,8 @@ cmd_display_popup_exec(struct cmd *self, struct cmdq_item *item) server_client_clear_overlay(tc); return (CMD_RETURN_NORMAL); } + if (tc->flags & CLIENT_CONTROL) + return (CMD_RETURN_NORMAL); if (!modify && tc->overlay_draw != NULL) return (CMD_RETURN_NORMAL); From 8b3834c34fd54df0be8798ad6412aab7d58d118d Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 31 Aug 2026 07:51:56 +0000 Subject: [PATCH 5/5] Do not leak temporary commands when expanding aliases, from Jeong, Heon. --- cmd-parse.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd-parse.y b/cmd-parse.y index 29b7780e0..4a6ec66b1 100644 --- a/cmd-parse.y +++ b/cmd-parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-parse.y,v 1.58 2026/04/27 12:31:11 nicm Exp $ */ +/* $OpenBSD: cmd-parse.y,v 1.59 2026/08/31 07:51:56 nicm Exp $ */ /* * Copyright (c) 2019 Nicholas Marriott @@ -802,6 +802,7 @@ cmd_parse_expand_alias(struct cmd_parse_command *cmd, if (last == NULL) { pr->status = CMD_PARSE_SUCCESS; pr->cmdlist = cmd_list_new(); + cmd_parse_free_commands(cmds); return (1); } @@ -814,6 +815,7 @@ cmd_parse_expand_alias(struct cmd_parse_command *cmd, pi->flags |= CMD_PARSE_NOALIAS; cmd_parse_build_commands(cmds, pi, pr); pi->flags &= ~CMD_PARSE_NOALIAS; + cmd_parse_free_commands(cmds); return (1); }