From 656731d54943b3a17529d9ca89da706515464241 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 21 Sep 2022 12:57:00 +0200 Subject: [PATCH] VcsManager: Fix crash when input directory is / If the input directory in VcsManager::findVersionControlForDirectory is just "/", that slash gets chopped off by absoluteWithNoTrailingSlash, and the resulting string is empty. So we need to handle that case. Change-Id: I7970043a16e587c803e94c16b71bea481ea21c09 Reviewed-by: Orgad Shaneh --- src/plugins/coreplugin/vcsmanager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp index 3e070950d99..27a77ec42c7 100644 --- a/src/plugins/coreplugin/vcsmanager.cpp +++ b/src/plugins/coreplugin/vcsmanager.cpp @@ -209,8 +209,10 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const FilePath &inpu // Make sure we an absolute path: QString directory = absoluteWithNoTrailingSlash(inputDirectory.toString()); #ifdef WITH_TESTS - if (directory[0].isLetter() && directory.indexOf(QLatin1Char(':') + QLatin1String(TEST_PREFIX)) == 1) + if (!directory.isEmpty() && directory[0].isLetter() + && directory.indexOf(QLatin1Char(':') + QLatin1String(TEST_PREFIX)) == 1) { directory = directory.mid(2); + } #endif auto cachedData = d->findInCache(directory); if (cachedData) {