Avoid crashing on startup if DBus isn't running

I am trying to run Okular on a minimal FreeBSD CHERI-RISC-V QEMU
instance and I haven't got DBus running. Without this change, I get
crashes because QDBusConnection::sessionBus().interface() returns NULL
if DBus isn't running.
remotes/origin/work/schwarzer/update_platform_name
Alex Richardson 5 years ago committed by Albert Astals Cid
parent 21bc8bd023
commit 0d15048e55
  1. 7
      shell/okular_main.cpp

@ -48,7 +48,12 @@ static bool attachExistingInstance(const QStringList &paths, const QString &seri
if (ShellUtils::showPrintDialogAndExit(serializedOptions))
return false;
const QStringList services = QDBusConnection::sessionBus().interface()->registeredServiceNames().value();
// If DBus isn't running, we can't attach to an existing instance.
auto *sessionInterface = QDBusConnection::sessionBus().interface();
if (!sessionInterface)
return false;
const QStringList services = sessionInterface->registeredServiceNames().value();
// Don't match the service without trailing "-" (unique instance)
const QString pattern = QStringLiteral("org.kde.okular-");

Loading…
Cancel
Save