From 204ba20242fed02f41070b8f7e48c050fef4fb29 Mon Sep 17 00:00:00 2001 From: dbuechel Date: Wed, 23 Jan 2019 10:07:20 +0100 Subject: [PATCH] SEBWIN-226: Ensured uninitialized dependencies won't crash event deregistration on client shutdown. --- SafeExamBrowser.Client/ClientController.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/SafeExamBrowser.Client/ClientController.cs b/SafeExamBrowser.Client/ClientController.cs index b8983f5c..67473fe6 100644 --- a/SafeExamBrowser.Client/ClientController.cs +++ b/SafeExamBrowser.Client/ClientController.cs @@ -177,16 +177,24 @@ namespace SafeExamBrowser.Client private void DeregisterEvents() { - Browser.ConfigurationDownloadRequested -= Browser_ConfigurationDownloadRequested; - ClientHost.MessageBoxRequested -= ClientHost_MessageBoxRequested; - ClientHost.PasswordRequested -= ClientHost_PasswordRequested; - ClientHost.ReconfigurationDenied -= ClientHost_ReconfigurationDenied; - ClientHost.Shutdown -= ClientHost_Shutdown; displayMonitor.DisplayChanged -= DisplayMonitor_DisplaySettingsChanged; processMonitor.ExplorerStarted -= ProcessMonitor_ExplorerStarted; runtime.ConnectionLost -= Runtime_ConnectionLost; taskbar.QuitButtonClicked -= Taskbar_QuitButtonClicked; windowMonitor.WindowChanged -= WindowMonitor_WindowChanged; + + if (Browser != null) + { + Browser.ConfigurationDownloadRequested -= Browser_ConfigurationDownloadRequested; + } + + if (ClientHost != null) + { + ClientHost.MessageBoxRequested -= ClientHost_MessageBoxRequested; + ClientHost.PasswordRequested -= ClientHost_PasswordRequested; + ClientHost.ReconfigurationDenied -= ClientHost_ReconfigurationDenied; + ClientHost.Shutdown -= ClientHost_Shutdown; + } } private void StartBrowser()