Do not allow pipe-pane on dead panes, from Anindya Mukherjee, GitHub
authornicm <nicm@openbsd.org>
Mon, 30 May 2022 13:03:46 +0000 (13:03 +0000)
committernicm <nicm@openbsd.org>
Mon, 30 May 2022 13:03:46 +0000 (13:03 +0000)
issue 3174.

usr.bin/tmux/cmd-pipe-pane.c

index fb1c71c..1ef7331 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-pipe-pane.c,v 1.59 2021/10/24 21:24:17 deraadt Exp $ */
+/* $OpenBSD: cmd-pipe-pane.c,v 1.60 2022/05/30 13:03:46 nicm Exp $ */
 
 /*
  * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -68,6 +68,12 @@ cmd_pipe_pane_exec(struct cmd *self, struct cmdq_item *item)
        struct format_tree              *ft;
        sigset_t                         set, oldset;
 
+       /* Do nothing if pane is dead. */
+       if (wp->fd == -1 || (wp->flags & PANE_EXITED)) {
+               cmdq_error(item, "target pane has exited");
+               return (CMD_RETURN_ERROR);
+       }
+
        /* Destroy the old pipe. */
        old_fd = wp->pipe_fd;
        if (wp->pipe_fd != -1) {