diff options
author | Daniel Ramos <hiperzone@gmail.com> | 2015-03-15 00:12:26 +0000 |
---|---|---|
committer | Daniel Ramos <hiperzone@gmail.com> | 2015-03-15 00:12:26 +0000 |
commit | d3dd9020f585b8f587d9f2deb377750dbd260db1 (patch) | |
tree | 29a54fcbf343be765be52f2ffa6bde0f9601da57 /OpenKeychain/src | |
parent | f1b1ecae20edb40a0c9b48009075daf94af51d20 (diff) | |
download | open-keychain-d3dd9020f585b8f587d9f2deb377750dbd260db1.tar.gz open-keychain-d3dd9020f585b8f587d9f2deb377750dbd260db1.tar.bz2 open-keychain-d3dd9020f585b8f587d9f2deb377750dbd260db1.zip |
-fixed out of bounds crash when retrieving the main profile name with secret keys
-fixed a possible crash when retrieving the main profile contactid
Diffstat (limited to 'OpenKeychain/src')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java | 4 | ||||
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java | 22 |
2 files changed, 15 insertions, 11 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java index 18f1ef8a7..c3a8d60f8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java @@ -135,7 +135,9 @@ public class ViewKeyFragment extends LoaderFragment implements if (mIsSecret) {//all secret keys are linked to "me" profile in contacts contactId = ContactHelper.getMainProfileContactId(resolver); List<String> mainProfileNames = ContactHelper.getMainProfileContactName(context); - if (mainProfileNames != null) contactName = mainProfileNames.get(0); + if (mainProfileNames != null && mainProfileNames.size() > 0) { + contactName = mainProfileNames.get(0); + } } else { contactId = ContactHelper.findContactId(resolver, masterKeyId); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index c07d7a36b..3fa6ea666 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -222,18 +222,20 @@ public class ContactHelper { * @return */ public static long getMainProfileContactId(ContentResolver resolver) { - Cursor profileCursor = resolver.query( - ContactsContract.Profile.CONTENT_URI, - new String[]{ - ContactsContract.Profile._ID - }, - null, null, null); - if (profileCursor == null) { + Cursor profileCursor = resolver.query(ContactsContract.Profile.CONTENT_URI, + new String[]{ ContactsContract.Profile._ID}, null, null, null); + + if(profileCursor != null && profileCursor.getCount() != 0 && profileCursor.moveToNext()) { + long contactId = profileCursor.getLong(0); + profileCursor.close(); + return contactId; + } + else { + if(profileCursor != null) { + profileCursor.close(); + } return -1; } - - profileCursor.moveToNext(); - return profileCursor.getLong(0); } /** |