bytrace的napi的startTrace接口未校验undefined情况

Signed-off-by: chenwei <chenwei469@huawei.com>
This commit is contained in:
chenwei
2023-04-27 21:01:35 +08:00
parent 915fc0503f
commit b29bb96ca6
@@ -93,6 +93,16 @@ bool ParseDoubleParam(const napi_env& env, const napi_value& value, double& dest
return true;
}
bool ParseUndefinedParam(const napi_env& env, const napi_value& value)
{
if (!TypeCheck(env, value, napi_undefined)) {
HiLog::Error(LABEL, "TypeCheck not passed.");
return false;
}
HiLog::Error(LABEL, "TypeCheck passed.");
return true;
}
bool JsStrNumParamsFunc(napi_env& env, napi_callback_info& info, STR_NUM_PARAM_FUNC nativeCall)
{
size_t argc = ARGC_NUMBER_TWO;
@@ -134,9 +144,11 @@ static napi_value JSTraceStart(napi_env env, napi_callback_info info)
StartAsyncTrace(HITRACE_TAG_APP, name, taskId);
} else {
double limit = 0.0;
if (!ParseDoubleParam(env, argv[THIRD_ARG_INDEX], limit)) {
if (!ParseDoubleParam(env, argv[THIRD_ARG_INDEX], limit) && !ParseUndefinedParam(env, argv[THIRD_ARG_INDEX])) {
HiLog::Error(LABEL, "!ParseDoubleParam && !ParseUndefinedParam.");
return nullptr;
}
HiLog::Error(LABEL, "invoke StartAsyncTrace.");
StartAsyncTrace(HITRACE_TAG_APP, name, taskId, limit);
}
return nullptr;