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

Commit 978c1ffc authored by Sterling Huber's avatar Sterling Huber Committed by Android (Google) Code Review
Browse files

Merge "Ensure caller identity is restored in CP quick-path." into rvc-dev

parents ace19f55 2f28b20e
Loading
Loading
Loading
Loading
+59 −58
Original line number Diff line number Diff line
@@ -7158,13 +7158,12 @@ public class ActivityManagerService extends IActivityManager.Stub
                        "getContentProviderImpl: after checkContentProviderPermission");
                final long origId = Binder.clearCallingIdentity();
                try {
                    checkTime(startTime, "getContentProviderImpl: incProviderCountLocked");
                // In this case the provider instance already exists, so we can
                // return it right away.
                conn = incProviderCountLocked(r, cpr, token, callingUid, callingPackage, callingTag,
                        stable);
                    // Return the provider instance right away since it already exists.
                    conn = incProviderCountLocked(r, cpr, token, callingUid, callingPackage,
                            callingTag, stable);
                    if (conn != null && (conn.stableCount+conn.unstableCount) == 1) {
                        if (cpr.proc != null
                                && r != null && r.setAdj <= ProcessList.PERCEPTIBLE_LOW_APP_ADJ) {
@@ -7187,7 +7186,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                    // it, we will check whether the process still exists.  Note that this doesn't
                    // completely get rid of races with LMK killing the process, but should make
                    // them much smaller.
                if (success && verifiedAdj != cpr.proc.setAdj && !isProcessAliveLocked(cpr.proc)) {
                    if (success && verifiedAdj != cpr.proc.setAdj
                            && !isProcessAliveLocked(cpr.proc)) {
                        success = false;
                    }
                    maybeUpdateProviderUsageStatsLocked(r, cpr.info.packageName, name);
@@ -7217,9 +7217,10 @@ public class ActivityManagerService extends IActivityManager.Stub
                    } else {
                        cpr.proc.verifiedAdj = cpr.proc.setAdj;
                    }
                } finally {
                    Binder.restoreCallingIdentity(origId);
                }
            }
            if (!providerRunning) {
                try {