Do not dereference NULL window when resizing client, GitHub issue 2982.
authornicm <nicm@openbsd.org>
Mon, 6 Dec 2021 10:08:42 +0000 (10:08 +0000)
committernicm <nicm@openbsd.org>
Mon, 6 Dec 2021 10:08:42 +0000 (10:08 +0000)
usr.bin/tmux/resize.c
usr.bin/tmux/tty.c

index 99df95e..bc141e5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: resize.c,v 1.47 2021/08/27 17:15:57 nicm Exp $ */
+/* $OpenBSD: resize.c,v 1.48 2021/12/06 10:08:42 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -348,6 +348,8 @@ recalculate_size_skip_client(struct client *loop, __unused int type,
         * is not the current window - this is used for aggressive-resize.
         * Otherwise skip any session that doesn't contain the window.
         */
+       if (loop->session->curw == NULL)
+               return (1);
        if (current)
                return (loop->session->curw->window != w);
        return (session_has(loop->session, w) == 0);
index a10567d..f67e9c5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.412 2021/11/29 11:05:28 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.413 2021/12/06 10:08:42 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -937,7 +937,9 @@ tty_update_window_offset(struct window *w)
        struct client   *c;
 
        TAILQ_FOREACH(c, &clients, entry) {
-               if (c->session != NULL && c->session->curw->window == w)
+               if (c->session != NULL &&
+                   c->session->curw != NULL &&
+                   c->session->curw->window == w)
                        tty_update_client_offset(c);
        }
 }