diff options
author | Devin Moore <devinmoore@google.com> | 2023-03-01 19:56:30 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-03-01 19:56:30 +0000 |
commit | 2e1019f87e71b0c806e16172706223d9132a4882 (patch) | |
tree | 1e796adba6c36a1d3d79d26a13d7e520c5c806fb | |
parent | 1662aa93ceda0567d8462230de06501f37952dee (diff) | |
parent | 2f8fa1367c62365cdd0a2de78a1c25cdcc599430 (diff) | |
download | native-2e1019f87e71b0c806e16172706223d9132a4882.tar.gz |
Remove some new memory leaks from SensorManager am: 2f8fa1367c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/21548667
Change-Id: I0dd5b57d881c6dc1ee4b21b0186693cab248b3ef
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libs/sensor/ISensorServer.cpp | 12 | ||||
-rw-r--r-- | libs/sensor/SensorManager.cpp | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/libs/sensor/ISensorServer.cpp b/libs/sensor/ISensorServer.cpp index a6cacad374..93c95b98c5 100644 --- a/libs/sensor/ISensorServer.cpp +++ b/libs/sensor/ISensorServer.cpp @@ -66,7 +66,11 @@ public: v.setCapacity(n); while (n) { n--; - reply.read(s); + if(reply.read(s) != OK) { + ALOGE("Failed to read reply from getSensorList"); + v.clear(); + break; + } v.add(s); } return v; @@ -84,7 +88,11 @@ public: v.setCapacity(n); while (n) { n--; - reply.read(s); + if(reply.read(s) != OK) { + ALOGE("Failed to read reply from getDynamicSensorList"); + v.clear(); + break; + } v.add(s); } return v; diff --git a/libs/sensor/SensorManager.cpp b/libs/sensor/SensorManager.cpp index 0ba9704263..c0525d4f5d 100644 --- a/libs/sensor/SensorManager.cpp +++ b/libs/sensor/SensorManager.cpp @@ -166,6 +166,11 @@ status_t SensorManager::assertStateLocked() { mSensors = mSensorServer->getSensorList(mOpPackageName); size_t count = mSensors.size(); + if (count == 0) { + ALOGE("Failed to get Sensor list"); + mSensorServer.clear(); + return UNKNOWN_ERROR; + } mSensorList = static_cast<Sensor const**>(malloc(count * sizeof(Sensor*))); LOG_ALWAYS_FATAL_IF(mSensorList == nullptr, "mSensorList NULL"); |