From 055adb8467366802ad052a6893f1a0283809b7bd Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Sat, 1 May 2021 10:25:10 -0700 Subject: [PATCH] [cli] add args length checking to dns command (#6547) --- src/cli/cli.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index e0e213304..d265f2a83 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -1468,6 +1468,7 @@ otError Interpreter::ProcessDns(uint8_t aArgsLength, Arg aArgs[]) } else if (aArgs[0] == "resolve") { + VerifyOrExit(aArgsLength >= 2, error = OT_ERROR_INVALID_ARGS); SuccessOrExit(error = GetDnsConfig(aArgsLength, aArgs, config, 2)); SuccessOrExit(error = otDnsClientResolveAddress(mInstance, aArgs[1].GetCString(), &Interpreter::HandleDnsAddressResponse, this, config)); @@ -1476,6 +1477,7 @@ otError Interpreter::ProcessDns(uint8_t aArgsLength, Arg aArgs[]) #if OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE else if (aArgs[0] == "browse") { + VerifyOrExit(aArgsLength >= 2, error = OT_ERROR_INVALID_ARGS); SuccessOrExit(error = GetDnsConfig(aArgsLength, aArgs, config, 2)); SuccessOrExit(error = otDnsClientBrowse(mInstance, aArgs[1].GetCString(), &Interpreter::HandleDnsBrowseResponse, this, config)); @@ -1483,6 +1485,7 @@ otError Interpreter::ProcessDns(uint8_t aArgsLength, Arg aArgs[]) } else if (aArgs[0] == "service") { + VerifyOrExit(aArgsLength >= 3, error = OT_ERROR_INVALID_ARGS); SuccessOrExit(error = GetDnsConfig(aArgsLength, aArgs, config, 3)); SuccessOrExit(error = otDnsClientResolveService(mInstance, aArgs[1].GetCString(), aArgs[2].GetCString(), &Interpreter::HandleDnsServiceResponse, this, config));