- problem: if sensor->get_data() is failed, event memory is not freed.
so there is memory-leak problem.
- solution: the allocation code of the event meory is moved when it is needed.
Change-Id: If42ab454c269ceab2ed64a13a9915cab23a2822e
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
continue;
while (remains > 0) {
- event = (sensor_event_t *)malloc(sizeof(sensor_event_t));
remains = sensor->get_data(&data, &data_length);
if (remains < 0) {
_E("Failed to get sensor data");
}
if (!sensor->on_event(data, data_length, remains)) {
- free(event);
free(data);
continue;
}
+ event = (sensor_event_t *)malloc(sizeof(sensor_event_t));
+ if (!event) {
+ _E("Memory allocation failed");
+ break;
+ }
+
event->sensor_id = sensor->get_id();
event->event_type = sensor->get_event_type();
event->data_length = data_length;