Merge "Address SessionCommitReceiver vulnerability by validating intent." into ub-launcher3-qt-future-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
992cfbf63d
@@ -71,8 +71,13 @@ public class SessionCommitReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
SessionInfo info = intent.getParcelableExtra(PackageInstaller.EXTRA_SESSION);
|
SessionInfo info = intent.getParcelableExtra(PackageInstaller.EXTRA_SESSION);
|
||||||
UserHandle user = intent.getParcelableExtra(Intent.EXTRA_USER);
|
UserHandle user = intent.getParcelableExtra(Intent.EXTRA_USER);
|
||||||
PackageInstallerCompat packageInstallerCompat = PackageInstallerCompat.getInstance(context);
|
if (!PackageInstaller.ACTION_SESSION_COMMITTED.equals(intent.getAction())
|
||||||
|
|| info == null || user == null) {
|
||||||
|
// Invalid intent.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PackageInstallerCompat packageInstallerCompat = PackageInstallerCompat.getInstance(context);
|
||||||
if (TextUtils.isEmpty(info.getAppPackageName())
|
if (TextUtils.isEmpty(info.getAppPackageName())
|
||||||
|| info.getInstallReason() != PackageManager.INSTALL_REASON_USER
|
|| info.getInstallReason() != PackageManager.INSTALL_REASON_USER
|
||||||
|| packageInstallerCompat.promiseIconAddedForId(info.getSessionId())) {
|
|| packageInstallerCompat.promiseIconAddedForId(info.getSessionId())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user