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

Commit 9e7ac3ba authored by Suchi Amalapurapu's avatar Suchi Amalapurapu Committed by android-build SharedAccount
Browse files

Add null checks when scanning a package.

Delete packages whose code and resource paths haven't been set
correctly.
parent 84577675
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1977,6 +1977,12 @@ class PackageManagerService extends IPackageManager.Stub {
            }
            PackageParser.Package pkg = scanPackageLI(file, file, resFile,
                    flags|PackageParser.PARSE_MUST_BE_APK, scanMode);
            // Don't mess around with apps in system partition.
            if (pkg == null && (flags & PackageParser.PARSE_IS_SYSTEM) == 0) {
                // Delete the apk
                Log.w(TAG, "Cleaning up failed install of " + file);
                file.delete();
            }
        }
    }

@@ -2171,6 +2177,13 @@ class PackageManagerService extends IPackageManager.Stub {
        File scanFile, File destCodeFile, File destResourceFile,
        PackageParser.Package pkg, int parseFlags, int scanMode) {

        if (scanFile == null || destCodeFile == null ||
                destResourceFile == null) {
            // Bail out. The resource and code paths haven't been set.
            Log.w(TAG, " Code and resource paths haven't been set correctly");
            mLastScanError = PackageManager.INSTALL_FAILED_INVALID_APK;
            return null;
        }
        mScanningPath = scanFile;
        if (pkg == null) {
            mLastScanError = PackageManager.INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME;