Skip to content

Commit 060ec30

Browse files
author
Federico Fissore
committed
GPGSignatureVerification: better error handling when reading signature
1 parent 0c123d7 commit 060ec30

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

arduino-core/src/cc/arduino/contributions/GPGDetachedSignatureVerifier.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,16 @@ public boolean verify(File signedFile, File signature, File publicKey) throws IO
5858
signatureInputStream = new FileInputStream(signature);
5959
PGPObjectFactory pgpObjectFactory = new PGPObjectFactory(signatureInputStream, new BcKeyFingerprintCalculator());
6060

61-
PGPSignatureList pgpSignatureList = (PGPSignatureList) pgpObjectFactory.nextObject();
61+
Object nextObject;
62+
try {
63+
nextObject = pgpObjectFactory.nextObject();
64+
if (!(nextObject instanceof PGPSignatureList)) {
65+
return false;
66+
}
67+
} catch (IOException e) {
68+
return false;
69+
}
70+
PGPSignatureList pgpSignatureList = (PGPSignatureList) nextObject;
6271
assert pgpSignatureList.size() == 1;
6372
PGPSignature pgpSignature = pgpSignatureList.get(0);
6473

0 commit comments

Comments
 (0)