Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7778389b authored by Felipe Leme's avatar Felipe Leme
Browse files

Fixed User HAL dump.

It was not validating the input before storing the response form lshal, which
would crash it later.

Test: adb shell lshal debug android.hardware.automotive.vehicle@2.0::IVehicle/default --set 299896583 a 2
Bug: 146207078

Change-Id: I49a38041e2881224c61e3c645db7c9103d024040
parent 0b0d69e7
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -311,6 +311,11 @@ StatusCode EmulatedVehicleServer::onSetInitialUserInfo(const VehiclePropValue& v
    // (even when explicitly calling setprop log.tag. As this class should be using ALOG instead of
    // LOG, it's not worth investigating why...

    if (value.value.int32Values.size() == 0) {
        LOG(ERROR) << "set(INITIAL_USER_INFO): no int32values, ignoring it: " << toString(value);
        return StatusCode::INVALID_ARG;
    }

    if (value.areaId != 0) {
        LOG(INFO) << "set(INITIAL_USER_INFO) called from lshal; storing it: " << toString(value);
        mInitialUserResponseFromCmd.reset(new VehiclePropValue(value));
@@ -318,10 +323,6 @@ StatusCode EmulatedVehicleServer::onSetInitialUserInfo(const VehiclePropValue& v
    }
    LOG(INFO) << "set(INITIAL_USER_INFO) called from Android: " << toString(value);

    if (value.value.int32Values.size() == 0) {
        LOG(ERROR) << "invalid request (no requestId): " << toString(value);
        return StatusCode::INVALID_ARG;
    }
    int32_t requestId = value.value.int32Values[0];

    // Create the update property and set common values