From 7eae30d5e3f7b268b199ec1d27948d35fb66b8ba Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 9 Jan 2024 13:48:32 -0800 Subject: [PATCH] Fix a nullptr deref in ref VHAL. Check for nullptr returned from refreshTimestamp if the property is not available. Test: m Bug: 319147839 Change-Id: Idb214a4f889bdd11e6d4f3979fd7d2e38ded7873 --- .../2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp index b56a1907c8..82e357f34f 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp @@ -494,7 +494,11 @@ void DefaultVehicleHal::onContinuousPropertyTimer(const std::vector& pr } for (int areaId : areaIds) { - auto v = pool.obtain(*mPropStore->refreshTimestamp(property, areaId)); + auto refreshedProp = mPropStore->refreshTimestamp(property, areaId); + VehiclePropValuePtr v = nullptr; + if (refreshedProp != nullptr) { + v = pool.obtain(*refreshedProp); + } if (v.get()) { events.push_back(std::move(v)); }