URL: <https://savannah.gnu.org/bugs/?67444>
Summary: crash when killing a window which is the current in multiple displays Group: GNU Screen Submitter: micronn Submitted: Tue 19 Aug 2025 08:41:10 PM GMT Category: Crash/Freeze/Infloop Severity: 3 - Normal Priority: 5 - Normal Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Release: 5.0.1 Fixed Release: None Planned Release: None Work Required: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Tue 19 Aug 2025 08:41:10 PM GMT By: micronn <micronn> Hi, When killing a window which is the current in more than one display, screen is crashing. It happens if hardstatus string contains %+w or similar (all window numbers and names starting the window after the current one). Steps to reproduce: Use, for example, the sample hardstatus string from manpage, :hardstatus string '%-Lw%{#AAA;#006}%50>%n%f* %t%{-}%+Lw%<' 1) start screen and configure the hardstatus string if necessary 2) create an extra window, so we have for example windows 0 and 1 3) be sure that window 1 is the current 4) in another session, attach to screen (screen -x) 5) be sure that window 1 is the current 6) kill the window (close the shell, whatever) [screen caught a fatal signal. (core dumped)] It crashes when screen has more than one window. It probably crashes in more situations, but I don't have sufficient experience with screen to provide a more detailed report. Here is my patch to solve the crash: --- process.c.orig 2025-08-19 18:51:56 UTC +++ process.c @@ -6008,7 +6008,7 @@ char *AddWindows(WinMsgBufContext *wmbc, int len, int cur = GetWindowByNumber(where); - for (win = (flags & 4) ? cur->w_next : first_window; win; win = win->w_next) { + for (win = (cur && (flags & 4)) ? cur->w_next : first_window; win; win = win->w_next) { int rend = -1; if (win == cur && ss == buf) ss = s; _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?67444> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature