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

Commit d5dd7d8b authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "SystemSensorManager:fix CWE problem by add lock." into main

parents eacb2c63 a46ffb23
Loading
Loading
Loading
Loading
+29 −23
Original line number Diff line number Diff line
@@ -518,6 +518,7 @@ public class SystemSensorManager extends SensorManager {

                    Handler mainHandler = new Handler(mContext.getMainLooper());

                    synchronized (mDynamicSensorCallbacks) {
                        for (Map.Entry<DynamicSensorCallback, Handler> entry :
                                mDynamicSensorCallbacks.entrySet()) {
                            final DynamicSensorCallback callback = entry.getKey();
@@ -536,6 +537,7 @@ public class SystemSensorManager extends SensorManager {
                                }
                            });
                        }
                    }

                    for (Sensor s: removedList) {
                        cleanupSensorConnection(s);
@@ -653,6 +655,7 @@ public class SystemSensorManager extends SensorManager {
        if (callback == null) {
            throw new IllegalArgumentException("callback cannot be null");
        }
        synchronized (mDynamicSensorCallbacks) {
            if (mDynamicSensorCallbacks.containsKey(callback)) {
                // has been already registered, ignore
                return;
@@ -661,6 +664,7 @@ public class SystemSensorManager extends SensorManager {
            setupDynamicSensorBroadcastReceiver();
            mDynamicSensorCallbacks.put(callback, handler);
        }
    }

    /** @hide */
    protected void unregisterDynamicSensorCallbackImpl(
@@ -668,8 +672,10 @@ public class SystemSensorManager extends SensorManager {
        if (DEBUG_DYNAMIC_SENSOR) {
            Log.i(TAG, "Removing dynamic sensor listener");
        }
        synchronized (mDynamicSensorCallbacks) {
            mDynamicSensorCallbacks.remove(callback);
        }
    }

    /*
     * Find the difference of two List<Sensor> assuming List are sorted by handle of sensor,