From a1faf14f74a62ea76141115538d7d30d90c9eeb6 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 22 Mar 2023 14:40:04 +0100 Subject: rhbz#2171265 Report fatal InitApplicationServiceManager failures more reliably For example, when initialization of the UNO type manager failed, any code run between this SetBootstrapError and the HandleBootstrapErrors in Desktop::Main which would need the type manager (e.g., to set a css::uno::Any) would have caused a crash, so would have failed to print to std::cerr the sought-after css::uno::Exception message. The mis-initialized process would most definitely crash sooner or later anyway, so there's no harm in a controlled std::abort() here (if that is even reached, and the process doesn't already crash in HandleBootstrapErrors, after it has printed the relevant information to std::cerr). Change-Id: Ic5889aedec0908fa4b1e2966eb188508d0f92d26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149323 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- desktop/source/app/app.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'desktop') diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 5a35b5a745c2..f1ec0b679bc0 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -28,6 +28,7 @@ #include +#include #include #include @@ -458,7 +459,8 @@ void Desktop::Init() } catch (css::uno::Exception & e) { - SetBootstrapError( BE_UNO_SERVICEMANAGER, e.Message ); + HandleBootstrapErrors( BE_UNO_SERVICEMANAGER, e.Message ); + std::abort(); } // Check whether safe mode is enabled -- cgit