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

Commit e2e1ef05 authored by Todd Kennedy's avatar Todd Kennedy
Browse files

fix prefix generation

when performing bitwise operations, java promotes byte's to int's.
this is normally okay except when the value is negative. in that
case, java extends the sign bits. this means that after shifting,
all of the upper bits are most likely going to be all f's. instead,
undo the sign extension by pulling out just the 8 bits we're
interested in.

Change-Id: I89f7244f6b675be2cca4a185a7002b5f8a6eece1
parent af414857
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -57,10 +57,10 @@ public final class EphemeralResolveInfo implements Parcelable {

        mDigestBytes = generateDigest(uri);
        mDigestPrefix =
                mDigestBytes[0] << 24
                | mDigestBytes[1] << 16
                | mDigestBytes[2] << 8
                | mDigestBytes[3] << 0;
                (mDigestBytes[0] & 0xFF) << 24
                | (mDigestBytes[1] & 0xFF) << 16
                | (mDigestBytes[2] & 0xFF) << 8
                | (mDigestBytes[3] & 0xFF) << 0;
        mFilters.addAll(filters);
        mPackageName = packageName;
    }
+4 −4
Original line number Diff line number Diff line
@@ -5000,10 +5000,10 @@ public class PackageManagerService extends IPackageManager.Stub {
        final byte[] hostBytes = intent.getData().getHost().getBytes();
        final byte[] digestBytes = digest.digest(hostBytes);
        int shaPrefix =
                digestBytes[0] << 24
                | digestBytes[1] << 16
                | digestBytes[2] << 8
                | digestBytes[3] << 0;
                (digestBytes[0] & 0xFF) << 24
                | (digestBytes[1] & 0xFF) << 16
                | (digestBytes[2] & 0xFF) << 8
                | (digestBytes[3] & 0xFF) << 0;
        final List<EphemeralResolveInfo> ephemeralResolveInfoList =
                mEphemeralResolverConnection.getEphemeralResolveInfoList(shaPrefix);
        if (ephemeralResolveInfoList == null || ephemeralResolveInfoList.size() == 0) {