From aca9ecdb8542a1f34e2311fff157a8279405b9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 13 Sep 2014 17:30:07 +0200 Subject: getSignaturesForID can return null, check this --- .../keychain/pgp/UncachedPublicKey.java | 36 ++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java index 2224d7391..404dbc0fb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java @@ -128,10 +128,18 @@ public class UncachedPublicKey { public String getPrimaryUserId() { String found = null; PGPSignature foundSig = null; + // noinspection unchecked for (String userId : new IterableIterator(mPublicKey.getUserIDs())) { PGPSignature revocation = null; - for (PGPSignature sig : new IterableIterator(mPublicKey.getSignaturesForID(userId))) { + @SuppressWarnings("unchecked") + Iterator signaturesIt = mPublicKey.getSignaturesForID(userId); + // no signatures for this User ID + if (signaturesIt == null) { + continue; + } + + for (PGPSignature sig : new IterableIterator(signaturesIt)) { try { // if this is a revocation, this is not the user id @@ -314,17 +322,21 @@ public class UncachedPublicKey { public Iterator getSignaturesForId(String userId) { final Iterator it = mPublicKey.getSignaturesForID(userId); - return new Iterator() { - public void remove() { - it.remove(); - } - public WrappedSignature next() { - return new WrappedSignature(it.next()); - } - public boolean hasNext() { - return it.hasNext(); - } - }; + if (it != null) { + return new Iterator() { + public void remove() { + it.remove(); + } + public WrappedSignature next() { + return new WrappedSignature(it.next()); + } + public boolean hasNext() { + return it.hasNext(); + } + }; + } else { + return null; + } } } -- cgit v1.2.3