From 09b5c556ae347472caae9ab8def551f261c6ca03 Mon Sep 17 00:00:00 2001 From: bailu1992 Date: Wed, 6 Aug 2025 10:43:20 +0800 Subject: [PATCH] Alert modification Signed-off-by: bailu1992 --- frameworks/js/napi/include/sensor_napi_utils.h | 3 ++- frameworks/js/napi/src/sensor_napi_utils.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frameworks/js/napi/include/sensor_napi_utils.h b/frameworks/js/napi/include/sensor_napi_utils.h index d1a715cc..bd5a3328 100644 --- a/frameworks/js/napi/include/sensor_napi_utils.h +++ b/frameworks/js/napi/include/sensor_napi_utils.h @@ -48,7 +48,8 @@ bool ConvertToGeomagneticData(const napi_env &env, sptr async bool ConvertToNumber(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); bool ConvertToArray(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); bool ConvertToRotationMatrix(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); -bool ConvertToSensorData(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); +bool ConvertToSensorData(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2], + const int32_t resultSize, std::shared_ptr data); bool CreateNapiArray(const napi_env &env, float *data, int32_t dataLength, napi_value &result); bool ConvertToSensorInfos(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); bool ConvertToSingleSensor(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2]); diff --git a/frameworks/js/napi/src/sensor_napi_utils.cpp b/frameworks/js/napi/src/sensor_napi_utils.cpp index 3f6f86e3..34aec191 100644 --- a/frameworks/js/napi/src/sensor_napi_utils.cpp +++ b/frameworks/js/napi/src/sensor_napi_utils.cpp @@ -30,6 +30,7 @@ namespace OHOS { namespace Sensors { namespace { constexpr int32_t STRING_LENGTH_MAX = 64; +constexpr int32_t RESULT_SIZE = 2; } // namespace static std::mutex g_sensorAttrListMutex; bool IsSameValue(const napi_env &env, const napi_value &lhs, const napi_value &rhs) @@ -363,10 +364,11 @@ bool ConvertToSensorState(const napi_env &env, sptr asyncCall } bool ConvertToSensorData(const napi_env &env, sptr asyncCallbackInfo, napi_value result[2], - std::shared_ptr data) + const int32_t resultSize, std::shared_ptr data) { CHKPF(asyncCallbackInfo); CHKPF(data); + CHKCF(!(resultSize < RESULT_SIZE), "result size Invalid"); int32_t sensorTypeId = data->sensorTypeId; std::lock_guard sensorAttrListLock(g_sensorAttrListMutex); CHKNCF(env, (g_sensorAttributeList.find(sensorTypeId) != g_sensorAttributeList.end()), "Invalid sensor type"); @@ -593,7 +595,7 @@ void EmitUvEventLoop(sptr asyncCallbackInfo, std::shared_ptr< napi_value result[2] = {0}; if (asyncCallbackInfo->type == ON_CALLBACK || asyncCallbackInfo->type == ONCE_CALLBACK || asyncCallbackInfo->type == SUBSCRIBE_CALLBACK) { - if (!ConvertToSensorData(env, asyncCallbackInfo, result, cb)) { + if (!ConvertToSensorData(env, asyncCallbackInfo, result, RESULT_SIZE, cb)) { SEN_HILOGE("ConvertToSensorData fail"); napi_throw_error(env, nullptr, "ConvertToSensorData fail"); ReleaseCallback(asyncCallbackInfo); -- Gitee