diff --git a/cli/cmdlineparser.cpp b/cli/cmdlineparser.cpp index dd7ad33054a..ae39951d855 100644 --- a/cli/cmdlineparser.cpp +++ b/cli/cmdlineparser.cpp @@ -870,9 +870,12 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a // --library else if (std::strncmp(argv[i], "--library=", 10) == 0) { - // TODO: bail out on empty library std::list libs = splitString(argv[i] + 10, ','); for (auto& l : libs) { + if (l.empty()) { + mLogger.printError("empty library specified."); + return Result::Fail; + } mSettings.libraries.emplace_back(std::move(l)); } } diff --git a/test/testcmdlineparser.cpp b/test/testcmdlineparser.cpp index 48cc194750a..21700461f1e 100644 --- a/test/testcmdlineparser.cpp +++ b/test/testcmdlineparser.cpp @@ -2464,14 +2464,14 @@ class TestCmdlineParser : public TestFixture { REDIRECT; const char * const argv[] = {"cppcheck", "--library=posix,,gnu", "file.cpp"}; ASSERT_EQUALS(false, parser->fillSettingsFromArgs(3, argv)); - ASSERT_EQUALS("cppcheck: Failed to load library configuration file ''. File not found\n", logger->str()); + ASSERT_EQUALS("cppcheck: error: empty library specified.\n", logger->str()); } void libraryMultipleEmpty2() { REDIRECT; const char * const argv[] = {"cppcheck", "--library=posix,gnu,", "file.cpp"}; ASSERT_EQUALS(false, parser->fillSettingsFromArgs(3, argv)); - ASSERT_EQUALS("cppcheck: Failed to load library configuration file ''. File not found\n", logger->str()); + ASSERT_EQUALS("cppcheck: error: empty library specified.\n", logger->str()); } void suppressXml() {