[cli] add lower bounds check to channel selection (#3523)

This commit is contained in:
Jonathan Hui
2019-01-28 08:39:18 -08:00
committed by GitHub
parent 70cb48f17a
commit 251207d725
+4 -2
View File
@@ -887,7 +887,8 @@ void Interpreter::ProcessDiscover(int argc, char *argv[])
if (argc > 0)
{
SuccessOrExit(error = ParseLong(argv[0], value));
VerifyOrExit(value <= static_cast<long>(sizeof(scanChannels) * CHAR_BIT), error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((0 <= value) && (value < static_cast<long>(sizeof(scanChannels) * CHAR_BIT)),
error = OT_ERROR_INVALID_ARGS);
scanChannels = 1 << value;
}
@@ -2742,7 +2743,8 @@ void Interpreter::ProcessScan(int argc, char *argv[])
else
{
SuccessOrExit(error = ParseLong(argv[0], value));
VerifyOrExit(value < static_cast<long>(sizeof(scanChannels) * CHAR_BIT), error = OT_ERROR_INVALID_ARGS);
VerifyOrExit((0 <= value) && (value < static_cast<long>(sizeof(scanChannels) * CHAR_BIT)),
error = OT_ERROR_INVALID_ARGS);
scanChannels = 1 << value;
}
}