From bcbad050d4b89be969c96039b5ff7d8c226547c7 Mon Sep 17 00:00:00 2001 From: tb Date: Wed, 4 Mar 2026 07:17:01 +0000 Subject: [PATCH 1/4] tmux: tc can be NULL, so check before deref to avoid crashing the server ok nicm --- cmd-send-keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd-send-keys.c b/cmd-send-keys.c index 6c2b0998..86e7daed 100644 --- a/cmd-send-keys.c +++ b/cmd-send-keys.c @@ -168,7 +168,7 @@ cmd_send_keys_exec(struct cmd *self, struct cmdq_item *item) u_int count = args_count(args); char *cause = NULL; - if (tc->flags & CLIENT_READONLY && !args_has(args, 'X')) { + if (tc != NULL && tc->flags & CLIENT_READONLY && !args_has(args, 'X')) { cmdq_error(item, "client is read-only"); return (CMD_RETURN_ERROR); } From d2fa20a39049b99b9d4038164aecaffbc13b4611 Mon Sep 17 00:00:00 2001 From: tb Date: Wed, 4 Mar 2026 07:19:32 +0000 Subject: [PATCH 2/4] tmux: use VIS_NOSLASH to avoid annoying double escaping on paste from nicm --- cmd-paste-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd-paste-buffer.c b/cmd-paste-buffer.c index fdf2bce7..03fcb0d4 100644 --- a/cmd-paste-buffer.c +++ b/cmd-paste-buffer.c @@ -50,7 +50,7 @@ cmd_paste_buffer_paste(struct window_pane *wp, const char *buf, size_t len) char *cp; size_t n; - n = utf8_stravisx(&cp, buf, len, VIS_SAFE); + n = utf8_stravisx(&cp, buf, len, VIS_SAFE|VIS_NOSLASH); bufferevent_write(wp->event, cp, n); free(cp); } From 55722a7ed7eaff7bdf39dd27df0c5026d6ab51ee Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 4 Mar 2026 08:15:24 +0000 Subject: [PATCH 3/4] Another memory leak, from Huihui Huang. --- cmd-confirm-before.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd-confirm-before.c b/cmd-confirm-before.c index 1f592ae0..72e9d87d 100644 --- a/cmd-confirm-before.c +++ b/cmd-confirm-before.c @@ -92,6 +92,7 @@ cmd_confirm_before_exec(struct cmd *self, struct cmdq_item *item) cdata->confirm_key = confirm_key[0]; else { cmdq_error(item, "invalid confirm key"); + cmd_list_free(cdata->cmdlist); free(cdata); return (CMD_RETURN_ERROR); } From 6d37cc94a70d01464b71b449a679f3a9a9284bf0 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 4 Mar 2026 08:16:47 +0000 Subject: [PATCH 4/4] Make -c work with new-session -A, from Jody Frankowski in GitHub issue 4906. --- cmd-new-session.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmd-new-session.c b/cmd-new-session.c index 06082653..a3e74888 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -117,8 +117,9 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) as = target->s; if (as != NULL) { retval = cmd_attach_session(item, as->name, - args_has(args, 'D'), args_has(args, 'X'), 0, NULL, - args_has(args, 'E'), args_get(args, 'f')); + args_has(args, 'D'), args_has(args, 'X'), 0, + args_get(args, 'c'), args_has(args, 'E'), + args_get(args, 'f')); free(newname); return (retval); }