From 496805476e4f10930d43da0a8bc02f2fdb38f534 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 7 May 2026 09:21:05 +0000 Subject: [PATCH] Require layout prefix to be 5 characters, GitHub issue 5067 from cglosner at gmail dot com. --- layout-custom.c | 5 +++-- window-copy.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/layout-custom.c b/layout-custom.c index 22de0bdd..27d5bf82 100644 --- a/layout-custom.c +++ b/layout-custom.c @@ -160,13 +160,14 @@ layout_parse(struct window *w, const char *layout, char **cause) struct window_pane *wp; u_int npanes, ncells, sx = 0, sy = 0; u_short csum; + int n; /* Check validity. */ - if (sscanf(layout, "%hx,", &csum) != 1) { + if (sscanf(layout, "%hx,%n", &csum, &n) != 1 || n != 5) { *cause = xstrdup("invalid layout"); return (-1); } - layout += 5; + layout += n; if (csum != layout_checksum(layout)) { *cause = xstrdup("invalid layout"); return (-1); diff --git a/window-copy.c b/window-copy.c index 36f14788..af80b8b4 100644 --- a/window-copy.c +++ b/window-copy.c @@ -469,7 +469,7 @@ window_copy_init(struct window_mode_entry *wme, struct screen *base = &wp->base; struct screen_write_ctx ctx; u_int i, cx, cy; - + data = window_copy_common_init(wme); data->backing = window_copy_clone_screen(base, &data->screen, &cx, &cy, wme->swp != wme->wp);