From 8c73634e1be2813ba42a89969ed7757c6ca548ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sun, 11 Jun 2023 14:33:32 +0200 Subject: [PATCH] relay: fix crash on `/upgrade` when at least a client is connected with weechat protocol --- ChangeLog.adoc | 1 + src/plugins/relay/relay.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 152e45085..d5338ea8a 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -111,6 +111,7 @@ Bug fixes:: * irc: remove extra space in CTCP ACTION message sent without arguments * logger: fix display of multiline messages in backlog (issue #1926) * lua: fix crash with print when the value to print is not a string (issue #1904, issue #1905) + * relay: fix crash on `/upgrade` when at least a client is connected with weechat protocol * relay: fix connection with IRC clients sending "CAP REQ :" (without capability) and not sending "CAP END" (issue #1040) * ruby: fix crash on quit when a child process is still running (issue #1889, issue #1915) * ruby: fix crash in display of exception backtrace with Ruby 3 (issue #1631, issue #1886) diff --git a/src/plugins/relay/relay.c b/src/plugins/relay/relay.c index b2e07a7b2..9e1c3f6b2 100644 --- a/src/plugins/relay/relay.c +++ b/src/plugins/relay/relay.c @@ -245,22 +245,18 @@ weechat_plugin_end (struct t_weechat_plugin *plugin) relay_config_write (); if (relay_signal_upgrade_received) - { relay_upgrade_save (0); - } else - { - relay_raw_message_free_all (); - - relay_server_free_all (); - relay_client_disconnect_all (); - if (relay_buffer) - weechat_buffer_close (relay_buffer); + relay_raw_message_free_all (); - relay_client_free_all (); - } + relay_server_free_all (); + + if (relay_buffer) + weechat_buffer_close (relay_buffer); + + relay_client_free_all (); relay_network_end ();