From 7afd2d8f743fb4807ab8f43061baae189f4f264c Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Tue, 27 Nov 2012 15:38:55 +0000 Subject: [PATCH] Don't accept an unreasonably large window size. --- src/net/sf/briar/plugins/modem/Receiver.java | 4 ++-- src/net/sf/briar/plugins/modem/Sender.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/net/sf/briar/plugins/modem/Receiver.java b/src/net/sf/briar/plugins/modem/Receiver.java index e11c8e5d43..09f373b0e2 100644 --- a/src/net/sf/briar/plugins/modem/Receiver.java +++ b/src/net/sf/briar/plugins/modem/Receiver.java @@ -11,11 +11,11 @@ import java.util.logging.Logger; class Receiver implements ReadHandler { + static final int MAX_WINDOW_SIZE = 8 * Data.MAX_PAYLOAD_LENGTH; + private static final Logger LOG = Logger.getLogger(Receiver.class.getName()); - private static final int MAX_WINDOW_SIZE = 8 * Data.MAX_PAYLOAD_LENGTH; - private final Sender sender; private final SortedSet<Data> dataFrames; // Locking: this diff --git a/src/net/sf/briar/plugins/modem/Sender.java b/src/net/sf/briar/plugins/modem/Sender.java index 5b5779bc60..9c8ef82af4 100644 --- a/src/net/sf/briar/plugins/modem/Sender.java +++ b/src/net/sf/briar/plugins/modem/Sender.java @@ -106,7 +106,8 @@ class Sender { // Update the window lastWindowUpdateOrProbe = now; int oldWindowSize = windowSize; - windowSize = a.getWindowSize(); + // Don't accept an unreasonably large window size + windowSize = Math.min(a.getWindowSize(), Receiver.MAX_WINDOW_SIZE); if(LOG.isLoggable(FINE)) LOG.fine("Window at sender " + windowSize); // If space has become available, notify any waiting writers if(windowSize > oldWindowSize || foundIndex != -1) notifyAll(); -- GitLab