diff --git a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp index cf9808a555..7d74ce4e22 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp @@ -116,9 +116,12 @@ void DlgSettingsFemElmerImp::onfileNameChangedMT(QString FileName) return; auto strName = FileName.toStdString(); + + // strName can be empty if there was once a valid Elmer installation but Elmer was meanwhile + // removed. That strName is shorter than 9 can only happen if the user.cfg file is corrupted. #if defined(FC_OS_WIN32) // name ends with "_mpi.exe" - if (strName.empty() || strName.substr(strName.length() - 8) != "_mpi.exe") { + if (strName.length() < 9 || strName.substr(strName.length() - 8) != "_mpi.exe") { QMessageBox::warning(this, tr("FEM Elmer: Not suitable for multithreading"), tr("Wrong Elmer setting: You use more than one CPU core.\n" "Therefore an executable with the suffix '_mpi.exe' is required.")); @@ -128,7 +131,7 @@ void DlgSettingsFemElmerImp::onfileNameChangedMT(QString FileName) } #elif defined(FC_OS_LINUX) || defined(FC_OS_CYGWIN) || defined(FC_OS_MACOSX) || defined(FC_OS_BSD) // name ends with "_mpi" - if (strName.empty() || strName.substr(strName.length() - 4) != "_mpi") { + if (strName.length() < 9 || strName.substr(strName.length() - 4) != "_mpi") { QMessageBox::warning(this, tr("FEM Elmer: Not suitable for multithreading"), tr("Wrong Elmer setting: You use more than one CPU core.\n" "Therefore an executable with the suffix '_mpi' is required."));