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

Commit 5307d17f authored by Mathias Agopian's avatar Mathias Agopian
Browse files

track UID with connections

Change-Id: Id4865f3cd27a95acdbbfdff1f2bb4123f312a13b
parent 3cdccc6f
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -383,7 +383,8 @@ Vector<Sensor> SensorService::getSensorList()

sp<ISensorEventConnection> SensorService::createSensorEventConnection()
{
    sp<SensorEventConnection> result(new SensorEventConnection(this));
    uid_t uid = IPCThreadState::self()->getCallingUid();
    sp<SensorEventConnection> result(new SensorEventConnection(this, uid));
    return result;
}

@@ -553,8 +554,8 @@ bool SensorService::SensorRecord::removeConnection(
// ---------------------------------------------------------------------------

SensorService::SensorEventConnection::SensorEventConnection(
        const sp<SensorService>& service)
    : mService(service), mChannel(new BitTube())
        const sp<SensorService>& service, uid_t uid)
    : mService(service), mChannel(new BitTube()), mUid(uid)
{
}

+4 −1
Original line number Diff line number Diff line
@@ -77,13 +77,14 @@ class SensorService :

        sp<SensorService> const mService;
        sp<BitTube> const mChannel;
        uid_t mUid;
        mutable Mutex mConnectionLock;

        // protected by SensorService::mLock
        SortedVector<int> mSensorInfo;

    public:
        SensorEventConnection(const sp<SensorService>& service);
        SensorEventConnection(const sp<SensorService>& service, uid_t uid);

        status_t sendEvents(sensors_event_t const* buffer, size_t count,
                sensors_event_t* scratch = NULL);
@@ -91,6 +92,8 @@ class SensorService :
        bool hasAnySensor() const;
        bool addSensor(int32_t handle);
        bool removeSensor(int32_t handle);

        uid_t getUid() const { return mUid; }
    };

    class SensorRecord {