From 0f6823d37e409a99416b1c52baa6ef8cc8be12bd Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Wed, 14 Jun 2017 09:35:32 -0700 Subject: [PATCH] Null check just in case the profile comes back empty // FREEBIE --- .../securesms/jobs/RetrieveProfileJob.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java b/src/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java index a2765b6d52..f8eaa46871 100644 --- a/src/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java +++ b/src/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.jobs; import android.content.Context; import android.support.annotation.NonNull; +import android.text.TextUtils; import android.util.Log; import org.thoughtcrime.securesms.crypto.storage.TextSecureIdentityKeyStore; @@ -79,9 +80,15 @@ public class RetrieveProfileJob extends ContextJob implements InjectableType { private void handleIndividualRecipient(Recipient recipient) throws IOException, InvalidKeyException, InvalidNumberException { - String number = Util.canonicalizeNumber(context, recipient.getNumber()); - SignalServiceProfile profile = retrieveProfile(number); - IdentityKey identityKey = new IdentityKey(Base64.decode(profile.getIdentityKey()), 0); + String number = Util.canonicalizeNumber(context, recipient.getNumber()); + SignalServiceProfile profile = retrieveProfile(number); + + if (TextUtils.isEmpty(profile.getIdentityKey())) { + Log.w(TAG, "Identity key is missing on profile!"); + return; + } + + IdentityKey identityKey = new IdentityKey(Base64.decode(profile.getIdentityKey()), 0); if (!DatabaseFactory.getIdentityDatabase(context) .getIdentity(recipient.getRecipientId())