From f0eceddfb11a1e806461def3ef85c0ec8a04c388 Mon Sep 17 00:00:00 2001 From: Liang Xiaofei Date: Tue, 3 Oct 2023 21:59:16 +0200 Subject: [PATCH] Fix crashes after passing through a zmodem transfer bug#25291 --- src/ChangeLog | 1 + src/process.c | 2 +- src/window.c | 2 -- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index fbfb85d..1976fa7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -9,6 +9,7 @@ Version 5.0.0 (08.07.24): - password * Fixes: - Screen buffers ESC keypresses indefinitely (#57748) + - Crashes after passing through a zmodem transfer (#25291) Version 4.9.1 (20/08/2023): * Support stop/parity bits on serial port (#23952) diff --git a/src/process.c b/src/process.c index 129e2dc..cbd33f2 100644 --- a/src/process.c +++ b/src/process.c @@ -1190,7 +1190,7 @@ static void DoCommandZmodem(struct action *act) int i; for (i = 0; i < 4; i++) if (!strcmp(zmodes[i], *args)) - return; + break; if (i == 4 && !strcmp(*args, "on")) i = 1; if (i == 4) { diff --git a/src/window.c b/src/window.c index 9f5e2d4..042d152 100644 --- a/src/window.c +++ b/src/window.c @@ -1812,7 +1812,6 @@ static void zmodem_found(Window *p, int send, char *bp, size_t len) void zmodem_abort(Window *p, Display *d) { - Display *olddisplay = display; Layer *oldflayer = flayer; if (p) { if (p->w_savelayer && p->w_savelayer->l_next) { @@ -1831,7 +1830,6 @@ void zmodem_abort(Window *p, Display *d) D_readev.condpos = D_readev.condneg = NULL; Activate(D_fore ? D_fore->w_norefresh : 0); } - display = olddisplay; flayer = oldflayer; }