diff --git a/app/src/main/java/org/fdroid/fdroid/RepoUpdater.java b/app/src/main/java/org/fdroid/fdroid/RepoUpdater.java index 7abd9d7a2..9d30651e1 100644 --- a/app/src/main/java/org/fdroid/fdroid/RepoUpdater.java +++ b/app/src/main/java/org/fdroid/fdroid/RepoUpdater.java @@ -459,6 +459,11 @@ public class RepoUpdater { if (RepoPushRequest.INSTALL.equals(repoPushRequest.request)) { ContentResolver cr = context.getContentResolver(); App app = AppProvider.Helper.findByPackageName(cr, packageName); + if (app == null) { + Utils.debugLog(TAG, packageName + " not in local database, ignoring request to" + + repoPushRequest.request); + continue; + } int versionCode; if (repoPushRequest.versionCode == null) { versionCode = app.suggestedVersionCode; diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java index 320789a5f..1a21bd9db 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java @@ -148,6 +148,10 @@ public class InstallManagerService extends Service { App app = intent.getParcelableExtra(EXTRA_APP); Apk apk = intent.getParcelableExtra(EXTRA_APK); + if (app == null || apk == null) { + Utils.debugLog(TAG, "Intent had null EXTRA_APP and/or EXTRA_APK: " + intent); + return START_NOT_STICKY; + } addToActive(urlString, app, apk); NotificationCompat.Builder builder = createNotificationBuilder(urlString, apk); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java index 7ceee54c2..4e3b3ad9f 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallerService.java @@ -24,6 +24,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; +import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.data.Apk; /** @@ -41,6 +42,7 @@ import org.fdroid.fdroid.data.Apk; * {@link InstallManagerService}. */ public class InstallerService extends IntentService { + public static final String TAG = "InstallerService"; private static final String ACTION_INSTALL = "org.fdroid.fdroid.installer.InstallerService.action.INSTALL"; private static final String ACTION_UNINSTALL = "org.fdroid.fdroid.installer.InstallerService.action.UNINSTALL"; @@ -52,7 +54,10 @@ public class InstallerService extends IntentService { @Override protected void onHandleIntent(Intent intent) { Apk apk = intent.getParcelableExtra(Installer.EXTRA_APK); - + if (apk == null) { + Utils.debugLog(TAG, "ignoring intent with null EXTRA_APK: " + intent); + return; + } Installer installer = InstallerFactory.create(this, apk); if (ACTION_INSTALL.equals(intent.getAction())) {