From 3a2bc408c5411ea3cab8fd25a992f99dcfc53106 Mon Sep 17 00:00:00 2001 From: chengyuli Date: Mon, 18 Aug 2025 09:59:06 +0800 Subject: [PATCH] Fix jsnapi fuzz Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/ICTDFC Signed-off-by: chengyuli Change-Id: I883e551ce2bfcdefbb06235c4aaddae3cdbaffe5 --- test/fuzztest/bufferrefnew_fuzzer/bufferrefnew_fuzzer.cpp | 5 +++-- .../copyableglobalsetandclearweak_fuzzer.cpp | 2 +- .../functionrefisnative_fuzzer.cpp | 2 +- .../jsnapiisarrayiterator_fuzzer.cpp | 2 +- test/fuzztest/jsnapiisfalse_fuzzer/jsnapiisfalse_fuzzer.cpp | 2 +- test/fuzztest/jsnapiistrue_fuzzer/jsnapiistrue_fuzzer.cpp | 2 +- test/fuzztest/jsnapiset_fuzzer/jsnapiset_fuzzer.cpp | 4 ++-- test/fuzztest/jsnapivalue_fuzzer/jsnapivalue_fuzzer.cpp | 5 ++--- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/fuzztest/bufferrefnew_fuzzer/bufferrefnew_fuzzer.cpp b/test/fuzztest/bufferrefnew_fuzzer/bufferrefnew_fuzzer.cpp index 75c7af9f73..16d0d6e09e 100644 --- a/test/fuzztest/bufferrefnew_fuzzer/bufferrefnew_fuzzer.cpp +++ b/test/fuzztest/bufferrefnew_fuzzer/bufferrefnew_fuzzer.cpp @@ -21,7 +21,7 @@ using namespace panda; using namespace panda::ecmascript; namespace OHOS { -void BufferRefNewFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) +void BufferRefNewFuzzTest(const uint8_t *data, size_t size) { RuntimeOption option; option.SetLogLevel(common::LOG_LEVEL::ERROR); @@ -30,7 +30,8 @@ void BufferRefNewFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) LOG_ECMA(ERROR) << "illegal input!"; return; } - BufferRef::New(vm, (int32_t)size); + NativePointerCallback deleter = nullptr; + BufferRef::New(vm, (void *)data, (int32_t)size, deleter, nullptr); JSNApi::DestroyJSVM(vm); } diff --git a/test/fuzztest/copyableglobalsetandclearweak_fuzzer/copyableglobalsetandclearweak_fuzzer.cpp b/test/fuzztest/copyableglobalsetandclearweak_fuzzer/copyableglobalsetandclearweak_fuzzer.cpp index da0eef103d..05735046fe 100644 --- a/test/fuzztest/copyableglobalsetandclearweak_fuzzer/copyableglobalsetandclearweak_fuzzer.cpp +++ b/test/fuzztest/copyableglobalsetandclearweak_fuzzer/copyableglobalsetandclearweak_fuzzer.cpp @@ -36,7 +36,7 @@ void CopyableGlobalSetandClearWeakFuzzTest(const uint8_t *data, size_t size) LOG_ECMA(ERROR) << "Parameter out of range."; return; } - Local str = StringRef::NewFromUtf8(vm, (const char *)data); + Local str = StringRef::NewFromUtf8(vm, (const char *)data, (int)size); Global globalObject(vm, str); globalObject.SetWeak(); globalObject.ClearWeak(); diff --git a/test/fuzztest/functionrefisnative_fuzzer/functionrefisnative_fuzzer.cpp b/test/fuzztest/functionrefisnative_fuzzer/functionrefisnative_fuzzer.cpp index 162a116726..c732d2eca6 100644 --- a/test/fuzztest/functionrefisnative_fuzzer/functionrefisnative_fuzzer.cpp +++ b/test/fuzztest/functionrefisnative_fuzzer/functionrefisnative_fuzzer.cpp @@ -27,7 +27,7 @@ Local FuncRefConCallbackForTest(JsiRuntimeCallInfo *info) return scope.Escape(ArrayRef::New(info->GetVM(), info->GetArgsNumber())); } -void FunctionRefIsNativeFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) +void FunctionRefIsNativeFuzzTest(const uint8_t *data, size_t size) { RuntimeOption option; option.SetLogLevel(common::LOG_LEVEL::ERROR); diff --git a/test/fuzztest/jsnapiisarrayiterator_fuzzer/jsnapiisarrayiterator_fuzzer.cpp b/test/fuzztest/jsnapiisarrayiterator_fuzzer/jsnapiisarrayiterator_fuzzer.cpp index e4e84b2dde..579e7655b7 100644 --- a/test/fuzztest/jsnapiisarrayiterator_fuzzer/jsnapiisarrayiterator_fuzzer.cpp +++ b/test/fuzztest/jsnapiisarrayiterator_fuzzer/jsnapiisarrayiterator_fuzzer.cpp @@ -30,7 +30,7 @@ void JSNApiIsArrayIterator_FuzzTest(const uint8_t *data, size_t size) LOG_ECMA(ERROR) << "illegal input!"; return; } - Local str = StringRef::NewFromUtf8(vm_, (const char *)data); + Local str = StringRef::NewFromUtf8(vm_, (const char *)data, (int)size); str->IsArrayIterator(vm_); JSNApi::DestroyJSVM(vm_); } diff --git a/test/fuzztest/jsnapiisfalse_fuzzer/jsnapiisfalse_fuzzer.cpp b/test/fuzztest/jsnapiisfalse_fuzzer/jsnapiisfalse_fuzzer.cpp index bcbf9d314a..8eb7765060 100644 --- a/test/fuzztest/jsnapiisfalse_fuzzer/jsnapiisfalse_fuzzer.cpp +++ b/test/fuzztest/jsnapiisfalse_fuzzer/jsnapiisfalse_fuzzer.cpp @@ -33,7 +33,7 @@ void JSNApiIsFalseFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) } Local b = JSValueRef::False(vm_); b->IsFalse(); - Local str = StringRef::NewFromUtf8(vm_, (const char *)data); + Local str = StringRef::NewFromUtf8(vm_, (const char *)data, (int)size); str->IsFalse(); JSNApi::DestroyJSVM(vm_); } diff --git a/test/fuzztest/jsnapiistrue_fuzzer/jsnapiistrue_fuzzer.cpp b/test/fuzztest/jsnapiistrue_fuzzer/jsnapiistrue_fuzzer.cpp index 25838f40ab..4772d27273 100644 --- a/test/fuzztest/jsnapiistrue_fuzzer/jsnapiistrue_fuzzer.cpp +++ b/test/fuzztest/jsnapiistrue_fuzzer/jsnapiistrue_fuzzer.cpp @@ -33,7 +33,7 @@ void JSNApiIsTrueFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) } Local b = JSValueRef::True(vm_); b->IsTrue(); - Local str = StringRef::NewFromUtf8(vm_, (const char *)data); + Local str = StringRef::NewFromUtf8(vm_, (const char *)data, (int)size); str->IsTrue(); JSNApi::DestroyJSVM(vm_); } diff --git a/test/fuzztest/jsnapiset_fuzzer/jsnapiset_fuzzer.cpp b/test/fuzztest/jsnapiset_fuzzer/jsnapiset_fuzzer.cpp index 709c366cad..3e7cf21a84 100644 --- a/test/fuzztest/jsnapiset_fuzzer/jsnapiset_fuzzer.cpp +++ b/test/fuzztest/jsnapiset_fuzzer/jsnapiset_fuzzer.cpp @@ -23,7 +23,7 @@ using namespace panda; using namespace panda::ecmascript; namespace OHOS { -void JSNApiSetAssetPathFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) +void JSNApiSetAssetPathFuzzTest(const uint8_t *data, size_t size) { RuntimeOption option; option.SetLogLevel(common::LOG_LEVEL::ERROR); @@ -75,7 +75,7 @@ void JSNApiSetMockModuleListFuzzTest(const uint8_t *data, size_t size) if (size <= 0) { return; } - std::map str = { { (char *)data, "20" } }; + std::map str = { { std::string((char *)data, size), "20" } }; JSNApi::SetMockModuleList(vm, str); JSNApi::DestroyJSVM(vm); } diff --git a/test/fuzztest/jsnapivalue_fuzzer/jsnapivalue_fuzzer.cpp b/test/fuzztest/jsnapivalue_fuzzer/jsnapivalue_fuzzer.cpp index a8caa9c111..f43546c2b6 100644 --- a/test/fuzztest/jsnapivalue_fuzzer/jsnapivalue_fuzzer.cpp +++ b/test/fuzztest/jsnapivalue_fuzzer/jsnapivalue_fuzzer.cpp @@ -22,7 +22,7 @@ using namespace panda; using namespace panda::ecmascript; namespace OHOS { -void JSNApiValueFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) +void JSNApiValueFuzzTest(const uint8_t *data, size_t size) { RuntimeOption option; option.SetLogLevel(common::LOG_LEVEL::ERROR); @@ -32,8 +32,7 @@ void JSNApiValueFuzzTest([[maybe_unused]]const uint8_t *data, size_t size) return; } void *vps = static_cast(const_cast(data)); - void *vps1 = static_cast(const_cast(data)); - Local res_vps = NativePointerRef::New(vm_, vps, NativeAreaAllocator::FreeBufferFunc, vps1, 0); + Local res_vps = NativePointerRef::New(vm_, vps, nullptr, nullptr, 0); res_vps->Value(); JSNApi::DestroyJSVM(vm_); } -- Gitee