aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2010-03-14 23:17:59 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2010-03-14 23:17:59 +0000
commit51eab54102adb3927f2eac41f888d4937d183717 (patch)
tree4a07ff0abadc8b3e4fa6d09194c5d74615834004 /window-copy.c
parent51c135ed73e2e9019297adaba127195fca0ce004 (diff)
downloadrtmux-51eab54102adb3927f2eac41f888d4937d183717.tar.gz
rtmux-51eab54102adb3927f2eac41f888d4937d183717.tar.bz2
rtmux-51eab54102adb3927f2eac41f888d4937d183717.zip
Avoid use-after-free when cancelling copy mode.
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/window-copy.c b/window-copy.c
index 23c7f2d0..204db0bd 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1,4 +1,4 @@
-/* $Id: window-copy.c,v 1.109 2010-03-08 15:02:07 tcunha Exp $ */
+/* $Id: window-copy.c,v 1.110 2010-03-14 23:17:59 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -256,9 +256,8 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
cmd = mode_key_lookup(&data->mdata, key);
switch (cmd) {
case MODEKEYCOPY_CANCEL:
- for (; np != 0; np--)
- window_pane_reset_mode(wp);
- break;
+ window_pane_reset_mode(wp);
+ return;
case MODEKEYCOPY_LEFT:
for (; np != 0; np--)
window_copy_cursor_left(wp);
@@ -366,6 +365,7 @@ window_copy_key(struct window_pane *wp, struct client *c, int key)
if (c != NULL && c->session != NULL) {
window_copy_copy_selection(wp, c);
window_pane_reset_mode(wp);
+ return;
}
break;
case MODEKEYCOPY_STARTOFLINE: