From acedbaeb3c796cd9682a4a6e684979853c1fc440 Mon Sep 17 00:00:00 2001 From: HYH Date: Tue, 19 Jul 2022 09:51:36 +0000 Subject: [PATCH 1/3] Signed-off-by:hellohyh001 --- .../hdi_connection/adapter/src/compatible_connection.cpp | 1 + services/sensor/src/sensor_data_processer.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/services/sensor/hdi_connection/adapter/src/compatible_connection.cpp b/services/sensor/hdi_connection/adapter/src/compatible_connection.cpp index 86273d68..f4bf6f62 100644 --- a/services/sensor/hdi_connection/adapter/src/compatible_connection.cpp +++ b/services/sensor/hdi_connection/adapter/src/compatible_connection.cpp @@ -138,6 +138,7 @@ int32_t CompatibleConnection::SensorDataCallback(const struct SensorEvents *even .dataLen = event->dataLen }; sensorEvent.data = new uint8_t[SENSOR_DATA_LENGHT]; + CHKPR(sensorEvent.data, ERR_INVALID_VALUE); errno_t ret = memcpy_s(sensorEvent.data, event->dataLen, event->data, event->dataLen); if (ret != EOK) { SEN_HILOGE("copy data failed"); diff --git a/services/sensor/src/sensor_data_processer.cpp b/services/sensor/src/sensor_data_processer.cpp index be50d8c7..cf107249 100644 --- a/services/sensor/src/sensor_data_processer.cpp +++ b/services/sensor/src/sensor_data_processer.cpp @@ -356,6 +356,9 @@ int32_t SensorDataProcesser::ProcessEvents(sptr dataCallback int32_t eventNum = eventsBuf.eventNum; for (int32_t i = 0; i < eventNum; i++) { EventFilter(eventsBuf); + if (eventsBuf.circularBuf[eventsBuf.readPos].data != nullptr) { + delete[] eventsBuf.circularBuf[eventsBuf.readPos].data; + } delete[] eventsBuf.circularBuf[eventsBuf.readPos].data; eventsBuf.readPos++; if (eventsBuf.readPos == CIRCULAR_BUF_LEN) { -- Gitee From 5bce751d37da1101afb838d7da3472b669c0d489 Mon Sep 17 00:00:00 2001 From: HYH Date: Wed, 20 Jul 2022 12:05:35 +0000 Subject: [PATCH 2/3] igned-off-by:hellohyh001 --- services/sensor/src/sensor_data_processer.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/services/sensor/src/sensor_data_processer.cpp b/services/sensor/src/sensor_data_processer.cpp index cf107249..d88d4911 100644 --- a/services/sensor/src/sensor_data_processer.cpp +++ b/services/sensor/src/sensor_data_processer.cpp @@ -359,7 +359,6 @@ int32_t SensorDataProcesser::ProcessEvents(sptr dataCallback if (eventsBuf.circularBuf[eventsBuf.readPos].data != nullptr) { delete[] eventsBuf.circularBuf[eventsBuf.readPos].data; } - delete[] eventsBuf.circularBuf[eventsBuf.readPos].data; eventsBuf.readPos++; if (eventsBuf.readPos == CIRCULAR_BUF_LEN) { eventsBuf.readPos = 0; -- Gitee From 85403c57a339c8f1833aefbda212e8081de08b85 Mon Sep 17 00:00:00 2001 From: HYH Date: Wed, 20 Jul 2022 12:35:18 +0000 Subject: [PATCH 3/3] Signed-off-by:hellohyh001 --- .../sensor/hdi_connection/adapter/src/sensor_event_callback.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/services/sensor/hdi_connection/adapter/src/sensor_event_callback.cpp b/services/sensor/hdi_connection/adapter/src/sensor_event_callback.cpp index 531b49cb..435bb4e0 100644 --- a/services/sensor/hdi_connection/adapter/src/sensor_event_callback.cpp +++ b/services/sensor/hdi_connection/adapter/src/sensor_event_callback.cpp @@ -44,6 +44,7 @@ int32_t SensorEventCallback::OnDataEvent(const HdfSensorEvents& event) .dataLen = event.dataLen }; sensorEvent.data = new uint8_t[SENSOR_DATA_LENGHT]; + CHKPR(sensorEvent.data, ERR_INVALID_VALUE); for (int32_t i = 0; i < static_cast(dataSize); i++) { sensorEvent.data[i] = event.data[i]; } -- Gitee