diff --git a/src/modules/startmanager/startmanager.cpp b/src/modules/startmanager/startmanager.cpp index 78d2685..dd920e1 100644 --- a/src/modules/startmanager/startmanager.cpp +++ b/src/modules/startmanager/startmanager.cpp @@ -251,6 +251,11 @@ void StartManager::onAutoStartupPathChange(const QString &path) bool StartManager::setAutostart(const QString &desktop, const bool value) { + if (!desktop.endsWith(".desktop")) { + qWarning() << "invalid desktop item..."; + return false; + } + QString desktopFullPath = desktop; QFileInfo info(desktopFullPath); if (!info.isAbsolute()) { @@ -270,6 +275,12 @@ bool StartManager::setAutostart(const QString &desktop, const bool value) } } + // 本地没有找到该应用就直接返回 + if (!info.isAbsolute()) { + qWarning() << "invalid item..."; + return false; + } + QDir autostartDir(BaseDir::userAutoStartDir().c_str()); const QString &appId = info.baseName();