summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2018-12-23 00:59:55 +0100
committerMichael Weghorn <m.weghorn@posteo.de>2018-12-23 02:06:17 +0100
commit87d90b6e60659e9c976daa9692ae99ec87a6978c (patch)
tree7d839a87a6671354a1d87075ac13565c1a4e4526
parent2c5c20b19c349a4b7f6d78d69d8d57f9af5c351c (diff)
tdf#122116 Only create CPDManager if D-Bus descriptions present
Since the XML files are required in the 'onNameAcquired()' method, check for their existence before returning a CPDManager pointer in 'tryLoadCPD()', to avoid returning a CPDManager that is unusable (and will even lead to a crash). Change-Id: I83c493ba8bd775ea398111971cbecb9352050194 Reviewed-on: https://gerrit.libreoffice.org/65576 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
-rw-r--r--vcl/unx/generic/printer/cpdmgr.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx
index c79ed672db60..195708d1953b 100644
--- a/vcl/unx/generic/printer/cpdmgr.cxx
+++ b/vcl/unx/generic/printer/cpdmgr.cxx
@@ -250,6 +250,12 @@ CPDManager* CPDManager::tryLoadCPD()
static const char* pEnv = getenv("SAL_DISABLE_CPD");
if (!pEnv || !*pEnv) {
+ // interface description XML files are needed in 'onNameAcquired()'
+ if (!g_file_test(FRONTEND_INTERFACE, G_FILE_TEST_IS_REGULAR) ||
+ !g_file_test(BACKEND_INTERFACE, G_FILE_TEST_IS_REGULAR)) {
+ return nullptr;
+ }
+
GDir *dir;
const gchar *filename;
dir = g_dir_open(BACKEND_DIR, 0, nullptr);