From fd00a29667bcabb434d52e5f47b02b7ac496a47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20K=C3=A4chele?= Date: Mon, 26 Feb 2024 19:41:25 +0100 Subject: [PATCH] Fix crash when unregistering unauthenticated connection --- lib/rex/server/message_broker.rb | 2 +- spec/server/message_broker_spec.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/rex/server/message_broker.rb b/lib/rex/server/message_broker.rb index 2c65cb6..32d897f 100644 --- a/lib/rex/server/message_broker.rb +++ b/lib/rex/server/message_broker.rb @@ -58,7 +58,7 @@ module Rex @connection_message_counter.delete(connection_id) @user_connection_associations[ @connection_user_associations[connection_id] - ].delete(connection_id) + ]&.delete(connection_id) @connection_user_associations.delete(connection_id) end diff --git a/spec/server/message_broker_spec.rb b/spec/server/message_broker_spec.rb index 999153c..ca3a3c4 100644 --- a/spec/server/message_broker_spec.rb +++ b/spec/server/message_broker_spec.rb @@ -101,4 +101,14 @@ RSpec.describe Rex::Server::MessageBroker do it { is_expected.to be_nil } end end + + describe "#unregister" do + context 'when connection was never associated with a user' do + it 'does not crash' do + expect do + instance.unregister(connection_id_a) + end.not_to raise_error + end + end + end end