From cf5c24c2f7ff877137a5d319c3459d5e0fedd577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Fri, 13 Mar 2026 23:11:00 +0100 Subject: [PATCH] core: fix crash with /eval when the current buffer is closed in a command --- CHANGELOG.md | 6 ++++++ src/core/core-command.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7955a233a..654a16a3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ SPDX-License-Identifier: GPL-3.0-or-later # WeeChat ChangeLog +## Version 4.8.3 (under dev) + +### Fixed + +- core: fix crash with `/eval` when the current buffer is closed in a command + ## Version 4.8.2 (2026-03-06) ### Fixed diff --git a/src/core/core-command.c b/src/core/core-command.c index 66f9899b6..831b8d25e 100644 --- a/src/core/core-command.c +++ b/src/core/core-command.c @@ -2469,6 +2469,16 @@ COMMAND_CALLBACK(eval) { for (ptr_command = commands; *ptr_command; ptr_command++) { + if (!gui_buffer_valid (buffer)) + { + buffer = gui_current_window->buffer; + if (pointers) + { + hashtable_set (pointers, "window", + gui_window_search_with_buffer (buffer)); + hashtable_set (pointers, "buffer", buffer); + } + } result = eval_expression (*ptr_command, pointers, NULL, options); if (result)