From 308a7017bef7d242b656ed994ab26fea76089fd8 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 15 Jul 2011 20:23:59 +0100 Subject: [PATCH] Check that EOF occurs when expected. --- components/net/sf/briar/protocol/BundleReaderImpl.java | 3 ++- components/net/sf/briar/protocol/BundleWriterImpl.java | 1 - components/net/sf/briar/protocol/MessageParserImpl.java | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/components/net/sf/briar/protocol/BundleReaderImpl.java b/components/net/sf/briar/protocol/BundleReaderImpl.java index 30dd99faa5..d5ef833c95 100644 --- a/components/net/sf/briar/protocol/BundleReaderImpl.java +++ b/components/net/sf/briar/protocol/BundleReaderImpl.java @@ -28,7 +28,6 @@ import net.sf.briar.api.serial.ReaderFactory; import com.google.inject.Inject; -/** A bundle that deserialises its contents on demand using a reader. */ class BundleReaderImpl implements BundleReader { private static enum State { START, FIRST_BATCH, MORE_BATCHES, END }; @@ -98,6 +97,8 @@ class BundleReaderImpl implements BundleReader { if(state != State.MORE_BATCHES) throw new IllegalStateException(); if(r.hasListEnd()) { r.readListEnd(); + // That should be all + if(!r.eof()) throw new FormatException(); state = State.END; return null; } diff --git a/components/net/sf/briar/protocol/BundleWriterImpl.java b/components/net/sf/briar/protocol/BundleWriterImpl.java index 09e7d72b62..d842b9ee5f 100644 --- a/components/net/sf/briar/protocol/BundleWriterImpl.java +++ b/components/net/sf/briar/protocol/BundleWriterImpl.java @@ -15,7 +15,6 @@ import net.sf.briar.api.serial.Raw; import net.sf.briar.api.serial.Writer; import net.sf.briar.api.serial.WriterFactory; -/** A bundle builder that serialises its contents using a writer. */ class BundleWriterImpl implements BundleWriter { private static enum State { START, FIRST_BATCH, MORE_BATCHES, END }; diff --git a/components/net/sf/briar/protocol/MessageParserImpl.java b/components/net/sf/briar/protocol/MessageParserImpl.java index b2d01c36ef..422d0d24ac 100644 --- a/components/net/sf/briar/protocol/MessageParserImpl.java +++ b/components/net/sf/briar/protocol/MessageParserImpl.java @@ -60,9 +60,13 @@ class MessageParserImpl implements MessageParser { AuthorId author = new AuthorId(messageDigest.digest()); // Skip the message body r.readRaw(); - // Verify the signature + // Record the length of the signed data int messageLength = (int) r.getRawBytesRead(); + // Read the signature byte[] sig = r.readRaw(); + // That should be all + if(!r.eof()) throw new FormatException(); + // Verify the signature PublicKey publicKey; try { publicKey = keyParser.parsePublicKey(encodedKey); -- GitLab