From cc4fca54db307ed6fadb30f2ced54e40a83cf986 Mon Sep 17 00:00:00 2001 From: liuyics15 <1179805842@qq.com> Date: Mon, 8 Sep 2025 15:33:43 +0800 Subject: [PATCH] fix dt fuzz errors Signed-off-by: liuyics15 <1179805842@qq.com> --- .../inner_api/cjffi/ark_interop/ark_interop_bigint.cpp | 1 + interfaces/inner_api/cjffi/ark_interop/ark_interop_napi.cpp | 6 ++++++ .../inner_api/cjffi/ark_interop/ark_interop_object.cpp | 2 ++ .../inner_api/cjffi/ark_interop/ark_interop_string.cpp | 5 +++++ .../inner_api/cjffi/ark_interop/ark_interop_symbol.cpp | 3 ++- 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/interfaces/inner_api/cjffi/ark_interop/ark_interop_bigint.cpp b/interfaces/inner_api/cjffi/ark_interop/ark_interop_bigint.cpp index cf8a58eb3..6dd6c9569 100644 --- a/interfaces/inner_api/cjffi/ark_interop/ark_interop_bigint.cpp +++ b/interfaces/inner_api/cjffi/ark_interop/ark_interop_bigint.cpp @@ -81,6 +81,7 @@ ARKTS_Value ARKTS_CreateBigIntWithBytes(ARKTS_Env env, bool isNegative, int64_t bool ARKTS_IsBigInt(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto tag = BIT_CAST(value, panda::JSValueRef); if (!tag.IsHeapObject()) { return false; diff --git a/interfaces/inner_api/cjffi/ark_interop/ark_interop_napi.cpp b/interfaces/inner_api/cjffi/ark_interop/ark_interop_napi.cpp index 2f2eca1c9..ce53d5811 100644 --- a/interfaces/inner_api/cjffi/ark_interop/ark_interop_napi.cpp +++ b/interfaces/inner_api/cjffi/ark_interop/ark_interop_napi.cpp @@ -293,6 +293,8 @@ ARKTS_Value ARKTS_CreateFunc(ARKTS_Env env, int64_t lambdaId) bool ARKTS_IsClass(ARKTS_Env env, ARKTS_Value value) { + ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto tag = BIT_CAST(value, JSValueRef); if (!tag.IsHeapObject()) { return false; @@ -474,6 +476,7 @@ ARKTS_Value ARKTS_GetElement(ARKTS_Env env, ARKTS_Value array, uint32_t index) bool ARKTS_IsArray(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is NULL"); + ARKTS_ASSERT_F(value, "value is null"); auto v = BIT_CAST(value, JSValueRef); if (!v.IsHeapObject()) { return false; @@ -508,6 +511,7 @@ ARKTS_Value ARKTS_CreateArrayBufferWithData(ARKTS_Env env, void* buffer, int32_t bool ARKTS_IsArrayBuffer(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto vm = P_CAST(env, EcmaVM*); panda::JsiFastNativeScope fastNativeScope(vm); auto tag = BIT_CAST(value, JSValueRef); @@ -585,6 +589,7 @@ ARKTS_Value ARKTS_CreateExternal(ARKTS_Env env, void* data) bool ARKTS_IsExternal(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto prime = BIT_CAST(value, JSValueRef); if (!prime.IsHeapObject()) { return false; @@ -652,6 +657,7 @@ void ARKTS_PromiseCapabilityReject(ARKTS_Env env, ARKTS_Promise prom, ARKTS_Valu bool ARKTS_IsPromise(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto v = BIT_CAST(value, JSValueRef); if (!v.IsHeapObject()) { return false; diff --git a/interfaces/inner_api/cjffi/ark_interop/ark_interop_object.cpp b/interfaces/inner_api/cjffi/ark_interop/ark_interop_object.cpp index a92afe708..19684b5ca 100644 --- a/interfaces/inner_api/cjffi/ark_interop/ark_interop_object.cpp +++ b/interfaces/inner_api/cjffi/ark_interop/ark_interop_object.cpp @@ -46,6 +46,7 @@ ARKTS_Value ARKTS_CreateObject(ARKTS_Env env) bool ARKTS_IsHeapObject(ARKTS_Value value) { + ARKTS_ASSERT_F(value, "value is null"); auto v = BIT_CAST(value, JSValueRef); return v.IsHeapObject(); } @@ -53,6 +54,7 @@ bool ARKTS_IsHeapObject(ARKTS_Value value) bool ARKTS_IsObject(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto vm = P_CAST(env, EcmaVM*); panda::JsiFastNativeScope fastNativeScope(vm); auto v = BIT_CAST(value, JSValueRef); diff --git a/interfaces/inner_api/cjffi/ark_interop/ark_interop_string.cpp b/interfaces/inner_api/cjffi/ark_interop/ark_interop_string.cpp index ca02417a7..0ed4b045a 100644 --- a/interfaces/inner_api/cjffi/ark_interop/ark_interop_string.cpp +++ b/interfaces/inner_api/cjffi/ark_interop/ark_interop_string.cpp @@ -44,6 +44,8 @@ ARKTS_Value ARKTS_CreateUtf8(ARKTS_Env env, const char* value, int32_t size) bool ARKTS_IsString(ARKTS_Env env, ARKTS_Value value) { + ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto vm = P_CAST(env, EcmaVM*); panda::JsiFastNativeScope fastNativeScope(vm); auto v = BIT_CAST(value, JSValueRef); @@ -57,6 +59,7 @@ bool ARKTS_IsString(ARKTS_Env env, ARKTS_Value value) int32_t ARKTS_GetValueUtf8Size(ARKTS_Env env, ARKTS_Value value) { ARKTS_ASSERT_I(env, "env is null"); + ARKTS_ASSERT_I(value, "value is null"); auto vm = P_CAST(env, EcmaVM*); panda::JsiFastNativeScope fastNativeScope(vm); ARKTS_ASSERT_I(ARKTS_IsString(env, value), "not a string"); @@ -66,9 +69,11 @@ int32_t ARKTS_GetValueUtf8Size(ARKTS_Env env, ARKTS_Value value) int32_t ARKTS_GetValueUtf8(ARKTS_Env env, ARKTS_Value value, int32_t capacity, char* buffer) { + ARKTS_ASSERT_I(env, "env is null"); auto vm = P_CAST(env, EcmaVM*); panda::JsiFastNativeScope fastNativeScope(vm); ARKTS_ASSERT_I(ARKTS_IsString(env, value), "not a string"); + ARKTS_ASSERT_I(capacity == 0 || buffer, "buffer is null when length not 0"); auto v = BIT_CAST(value, Local); return v->WriteUtf8(vm, buffer, capacity, true); } diff --git a/interfaces/inner_api/cjffi/ark_interop/ark_interop_symbol.cpp b/interfaces/inner_api/cjffi/ark_interop/ark_interop_symbol.cpp index 707581c37..5c65e8f2d 100644 --- a/interfaces/inner_api/cjffi/ark_interop/ark_interop_symbol.cpp +++ b/interfaces/inner_api/cjffi/ark_interop/ark_interop_symbol.cpp @@ -38,6 +38,8 @@ ARKTS_Value ARKTS_CreateSymbol(ARKTS_Env env, const char* description, int32_t l bool ARKTS_IsSymbol(ARKTS_Env env, ARKTS_Value value) { + ARKTS_ASSERT_F(env, "env is null"); + ARKTS_ASSERT_F(value, "value is null"); auto tag = BIT_CAST(value, JSValueRef); if (!tag.IsHeapObject()) { return false; @@ -49,7 +51,6 @@ bool ARKTS_IsSymbol(ARKTS_Env env, ARKTS_Value value) const char* ARKTS_GetSymbolDesc(ARKTS_Env env, ARKTS_Value value) { - ARKTS_ASSERT_P(env, "env is null"); ARKTS_ASSERT_P(ARKTS_IsSymbol(env, value), "value is not a symbol"); auto vm = P_CAST(env, EcmaVM*); -- Gitee