diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2016-09-07 14:52:19 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-09-08 15:38:22 +0000 |
commit | fc98027c20cdf65121bc1bf572f7e76a7e449142 (patch) | |
tree | c386526bbffcfebc3d6d2e7ed4a3dc263633db98 /src | |
parent | b8f1b85ade3fcdcd356d220309588e377c59ef95 (diff) |
Fix undefined behavior in command line parser
Change-Id: Ifa6b8b67f897d5405f7ec118ddf76831077ccfed
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/app/qbs/parser/commandlineoption.cpp | 1 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoption.h | 2 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/commandechomode.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/tools/commandechomode.h | 2 |
5 files changed, 5 insertions, 6 deletions
diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp index 3ad60e292..19c7916c7 100644 --- a/src/app/qbs/parser/commandlineoption.cpp +++ b/src/app/qbs/parser/commandlineoption.cpp @@ -596,7 +596,6 @@ void SettingsDirOption::doParse(const QString &representation, QStringList &inpu } CommandEchoModeOption::CommandEchoModeOption() - : m_echoMode(static_cast<CommandEchoMode>(-1)) { } diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h index e27ef9518..e660860ef 100644 --- a/src/app/qbs/parser/commandlineoption.h +++ b/src/app/qbs/parser/commandlineoption.h @@ -363,7 +363,7 @@ public: private: void doParse(const QString &representation, QStringList &input); - CommandEchoMode m_echoMode; + CommandEchoMode m_echoMode = CommandEchoModeInvalid; }; class SettingsDirOption : public CommandLineOption diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp index d1ab5d176..b41f7d749 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -628,7 +628,7 @@ CommandEchoMode CommandLineParser::CommandLineParserPrivate::echoMode() const if (command->type() == GenerateCommandType) return CommandEchoModeSilent; - if (optionPool.commandEchoModeOption()->commandEchoMode() >= 0) + if (optionPool.commandEchoModeOption()->commandEchoMode() < CommandEchoModeInvalid) return optionPool.commandEchoModeOption()->commandEchoMode(); return defaultCommandEchoMode(); diff --git a/src/lib/corelib/tools/commandechomode.cpp b/src/lib/corelib/tools/commandechomode.cpp index 268243af5..f68b334bd 100644 --- a/src/lib/corelib/tools/commandechomode.cpp +++ b/src/lib/corelib/tools/commandechomode.cpp @@ -67,7 +67,7 @@ QString commandEchoModeName(CommandEchoMode mode) CommandEchoMode commandEchoModeFromName(const QString &name) { CommandEchoMode mode = defaultCommandEchoMode(); - for (int i = 0; i <= static_cast<int>(CommandEchoModeLast); ++i) { + for (int i = 0; i < CommandEchoModeInvalid; ++i) { if (commandEchoModeName(static_cast<CommandEchoMode>(i)) == name) { mode = static_cast<CommandEchoMode>(i); break; @@ -80,7 +80,7 @@ CommandEchoMode commandEchoModeFromName(const QString &name) QStringList allCommandEchoModeStrings() { QStringList result; - for (int i = 0; i <= static_cast<int>(CommandEchoModeLast); ++i) + for (int i = 0; i < CommandEchoModeInvalid; ++i) result << commandEchoModeName(static_cast<CommandEchoMode>(i)); return result; } diff --git a/src/lib/corelib/tools/commandechomode.h b/src/lib/corelib/tools/commandechomode.h index e820b15a8..86975e2f3 100644 --- a/src/lib/corelib/tools/commandechomode.h +++ b/src/lib/corelib/tools/commandechomode.h @@ -42,7 +42,7 @@ enum CommandEchoMode { CommandEchoModeSummary, CommandEchoModeCommandLine, CommandEchoModeCommandLineWithEnvironment, - CommandEchoModeLast = CommandEchoModeCommandLineWithEnvironment + CommandEchoModeInvalid, }; QBS_EXPORT CommandEchoMode defaultCommandEchoMode(); |