From 261d18756774b056137756a194b7cb22f308d8b3 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Fri, 8 Dec 2017 14:36:36 -0800 Subject: [PATCH] Don't perform multi-device contact update without contact perms --- .../securesms/jobs/MultiDeviceContactUpdateJob.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index 6e4bfa9ad8..deb42c261b 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.jobs; +import android.Manifest; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.database.Cursor; @@ -19,6 +20,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.IdentityDatabase; import org.thoughtcrime.securesms.dependencies.InjectableType; import org.thoughtcrime.securesms.jobs.requirements.MasterSecretRequirement; +import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.TextSecurePreferences; @@ -117,6 +119,11 @@ public class MultiDeviceContactUpdateJob extends MasterSecretJob implements Inje private void generateFullContactUpdate() throws IOException, UntrustedIdentityException, NetworkException { + if (!Permissions.hasAny(context, Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS)) { + Log.w(TAG, "No contact permissions, skipping multi-device contact update..."); + return; + } + File contactDataFile = createTempFile("multidevice-contact-update"); try {