diff --git a/src/core/utils/parse_cmdline.cpp b/src/core/utils/parse_cmdline.cpp index 8a500ff84..52f77dded 100644 --- a/src/core/utils/parse_cmdline.cpp +++ b/src/core/utils/parse_cmdline.cpp @@ -302,12 +302,17 @@ enum HexStringParseMode static Error ParseHexString(const char *&aString, uint16_t &aSize, uint8_t *aBuffer, HexStringParseMode aMode) { - Error error = kErrorNone; - size_t stringLength = strlen(aString); - size_t expectedSize = (stringLength + 1) / 2; - size_t parsedSize = 0; + Error error = kErrorNone; + size_t parsedSize = 0; + size_t stringLength; + size_t expectedSize; bool skipFirstDigit; + VerifyOrExit(aString != nullptr, error = kErrorInvalidArgs); + + stringLength = strlen(aString); + expectedSize = (stringLength + 1) / 2; + switch (aMode) { case kModeExtactSize: