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

Commit d5c8c520 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "UidObserverController: Protect mValidateUids with mLock" into main am: e8617b5a

parents 09c5d4fd e8617b5a
Loading
Loading
Loading
Loading
+31 −25
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ public class UidObserverController {
     * This is for verifying the UID report flow.
     */
    private static final boolean VALIDATE_UID_STATES = true;
    @GuardedBy("mLock")
    private final ActiveUids mValidateUids;

    UidObserverController(@NonNull Handler handler) {
@@ -282,6 +283,7 @@ public class UidObserverController {
        }
        mUidObservers.finishBroadcast();

        synchronized (mLock) {
            if (VALIDATE_UID_STATES && mUidObservers.getRegisteredCallbackCount() > 0) {
                for (int j = 0; j < numUidChanges; ++j) {
                    final ChangeRecord item = mActiveUidChanges[j];
@@ -305,8 +307,6 @@ public class UidObserverController {
                    }
                }
            }

        synchronized (mLock) {
            for (int j = 0; j < numUidChanges; j++) {
                final ChangeRecord changeRecord = mActiveUidChanges[j];
                changeRecord.isPending = false;
@@ -433,8 +433,10 @@ public class UidObserverController {
    }

    UidRecord getValidateUidRecord(int uid) {
        synchronized (mLock) {
            return mValidateUids.get(uid);
        }
    }

    void dump(@NonNull PrintWriter pw, @Nullable String dumpPackage) {
        synchronized (mLock) {
@@ -488,13 +490,17 @@ public class UidObserverController {

    boolean dumpValidateUids(@NonNull PrintWriter pw, @Nullable String dumpPackage, int dumpAppId,
            @NonNull String header, boolean needSep) {
        synchronized (mLock) {
            return mValidateUids.dump(pw, dumpPackage, dumpAppId, header, needSep);
        }
    }

    void dumpValidateUidsProto(@NonNull ProtoOutputStream proto, @Nullable String dumpPackage,
            int dumpAppId, long fieldId) {
        synchronized (mLock) {
            mValidateUids.dumpProto(proto, dumpPackage, dumpAppId, fieldId);
        }
    }

    static final class ChangeRecord {
        public boolean isPending;