From ac723bf2df3d5c0ee29441a2857774094a009391 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 8 Jul 2026 08:15:49 +0000 Subject: [PATCH] Do not crash looking for next or previous session. GitHub issue 5344. --- server-fn.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server-fn.c b/server-fn.c index 585a01f9c..7560e9da2 100644 --- a/server-fn.c +++ b/server-fn.c @@ -435,6 +435,7 @@ server_destroy_session(struct session *s) { struct client *c; struct session *s_new = NULL, *cs_new = NULL, *use_s; + struct sort_criteria sort_crit = { .order = SORT_NAME }; int detach_on_destroy; detach_on_destroy = options_get_number(s->options, "detach-on-destroy"); @@ -443,9 +444,11 @@ server_destroy_session(struct session *s) else if (detach_on_destroy == 2) s_new = server_find_session(s, server_newer_detached_session); else if (detach_on_destroy == 3) - s_new = session_previous_session(s, NULL); + s_new = session_previous_session(s, &sort_crit); else if (detach_on_destroy == 4) - s_new = session_next_session(s, NULL); + s_new = session_next_session(s, &sort_crit); + if (s_new == s) + s_new = NULL; /* * If no suitable new session was found above, then look for any