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

Commit 3e654843 authored by Todd Kennedy's avatar Todd Kennedy
Browse files

Fix if clauses

During a refactor, we introduced updated the method used to
verify signatures. The "&& additionalTest" clauses were added
to the wrong if statement [off-by-one]. So, we were performing
a compat signature check when we shouldn't and not throwing
an exception when we should.

Change-Id: Ie479be5b254b9b13451ab07a07d20a68c7b828ad
Fixes: 69053002
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AppSecurityTests#testSharedUidDifferentCerts
parent 96cb94ba
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -579,16 +579,16 @@ public class PackageManagerServiceUtils {
            // Already existing package. Make sure signatures match
            boolean match = compareSignatures(pkgSetting.sharedUser.signatures.mSignatures,
                    parsedSignatures) == PackageManager.SIGNATURE_MATCH;
            if (!match) {
            if (!match && compareCompat) {
                match = matchSignaturesCompat(
                        packageName, pkgSetting.sharedUser.signatures, parsedSignatures);
            }
            if (!match && compareCompat) {
            if (!match && compareRecover) {
                match = matchSignaturesRecover(
                        packageName, pkgSetting.sharedUser.signatures.mSignatures, parsedSignatures);
                compatMatch |= match;
            }
            if (!match && compareRecover) {
            if (!match) {
                throw new PackageManagerException(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE,
                        "Package " + packageName
                        + " has no signatures that match those in shared user "