From 054d2303d7f041150d49d6a6cb9acc21615682d0 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 22 Jul 2010 21:10:51 +0000 Subject: [PATCH] Fix a crash: if remain-on-exit is set and the pane has exited, the buffers may not be valid, so do not try to disable/enable them when switching to copy mode. --- usr.bin/tmux/window-copy.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/usr.bin/tmux/window-copy.c b/usr.bin/tmux/window-copy.c index 97b71afc319..55da4992104 100644 --- a/usr.bin/tmux/window-copy.c +++ b/usr.bin/tmux/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.60 2010/06/29 05:24:49 tedu Exp $ */ +/* $OpenBSD: window-copy.c,v 1.61 2010/07/22 21:10:51 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -171,7 +171,8 @@ window_copy_init(struct window_pane *wp) data->searchstr = NULL; wp->flags |= PANE_FREEZE; - bufferevent_disable(wp->event, EV_READ|EV_WRITE); + if (wp->fd != -1) + bufferevent_disable(wp->event, EV_READ|EV_WRITE); data->jumptype = WINDOW_COPY_OFF; data->jumpchar = '\0'; @@ -234,7 +235,8 @@ window_copy_free(struct window_pane *wp) struct window_copy_mode_data *data = wp->modedata; wp->flags &= ~PANE_FREEZE; - bufferevent_enable(wp->event, EV_READ|EV_WRITE); + if (wp->fd != -1) + bufferevent_enable(wp->event, EV_READ|EV_WRITE); if (data->searchstr != NULL) xfree(data->searchstr); -- 2.20.1