diff --git a/frameworks/native/src/sensor_file_descriptor_listener.cpp b/frameworks/native/src/sensor_file_descriptor_listener.cpp index ec1a564f451104cfaf76e9eb2dfa79f559d1ba41..635f544093dc7b63c80ed99e0c49afd666d7d713 100644 --- a/frameworks/native/src/sensor_file_descriptor_listener.cpp +++ b/frameworks/native/src/sensor_file_descriptor_listener.cpp @@ -64,6 +64,10 @@ void SensorFileDescriptorListener::ExcuteCallback(int32_t length) { int32_t eventSize = static_cast(sizeof(SensorData)); int32_t num = length / eventSize; + if (num <= 0 || num > RECEIVE_DATA_SIZE) { + SEN_HILOGE("num:%{public}d is invalid", num); + return; + } for (int i = 0; i < num; i++) { SensorEvent event = { .sensorTypeId = receiveDataBuff_[i].sensorTypeId,